Hey everyone,
two days ago i have published my latest game idea
It is a a Facebook quiz where you can play (currently) 7 game modes with your friends' data.
* Assign a friend's photo to a list of names
* Order your friends' photos in ascending order of their ages
* Guess your friend's age
* Assign a location on map to one of your friends' current city
* Assign a location on map one of your friends' hometowns
* Play Memory with your friends' photos
* Guess the birthday of your friends
It uses the Facebook SDK to downloads your friends' data for offline use when you first start your game.
I would like to get any feedback from you guys
Get it via this link or the qr code
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Goddchen
I liked! <3
Its not importing any of my facebook friends.. The facebook screen simply closes as soon as it opens..
Cool idea though..
Strange. Would you mind sending me your logcat? Either in the threat or via PM...
swam1231 said:
Its not importing any of my facebook friends.. The facebook screen simply closes as soon as it opens..
Cool idea though..
Click to expand...
Click to collapse
Sent from my GT-I9100 using XDA App
swam1231 said:
Its not importing any of my facebook friends.. The facebook screen simply closes as soon as it opens..
Cool idea though..
Click to expand...
Click to collapse
I have the same problem.
Here is my logcat (from the first time it appears we see your app, since I can't possibly post the whole thing):
Code:
I/ActivityManager( 747): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=de.goddchen.android.x.friendquiz/.FriendQuizListActivity } from pid 747
D/FlurryAgent(24378): startSession called
D/FlurryAgent(24378): Initializing Flurry session
D/FlurryAgent(24378): Starting new session
W/Settings(24378): Setting android_id has moved from android.provider.Settings.System to android.provider.Settings.Secure, returning read-only value.
D/FlurryAgent(24378): Sending report to: http://data.flurry.com/aap.do
D/FlurryAgent(24378): Sending report exception: Connection to http://data.flurry.com refused
W/InputManagerService( 747): Starting input on non-focused client [email protected] (uid=10001 pid=24459)
W/IInputConnectionWrapper(24459): showStatusIcon on inactive InputConnection
W/KeyCharacterMap(24378): No keyboard for id 0
W/KeyCharacterMap(24378): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
D/FlurryAgent(24378): Ending sessionD/dalvikvm(24459): GC_CONCURRENT freed 272K, 61% free 3983K/9991K, external 92K/513K, paused 2ms+2ms
D/dalvikvm(24459): GC_CONCURRENT freed 226K, 58% free 4254K/9991K, external 92K/513K, paused 3ms+4ms
D/dalvikvm(24459): GCFORMALLOC freed 393K, 60% free 4095K/9991K, external 92K/513K, paused 23ms
I/dalvikvm-heap(24459): Grow heap (frag case) to 7.507MB for 1060016-byte allocation
D/dalvikvm(24459): GCFORMALLOC freed 1035K, 60% free 4095K/9991K, external 92K/513K, paused 22ms
D/dalvikvm(24459): GC_CONCURRENT freed 9K, 60% free 4095K/9991K, external 92K/513K, paused 3ms+3ms
D/dalvikvm( 747): GCEXTERNALALLOC freed 98K, 39% free 9317K/15111K, external 2989K/2996K, paused 107msD/dalvikvm(24459): GC_CONCURRENT freed 444K, 59% free 4123K/9991K, external 92K/513K, paused 2ms+4ms
D/dalvikvm(24459): GC_CONCURRENT freed 262K, 57% free 4332K/9991K, external 92K/513K, paused 2ms+2ms
D/dalvikvm(24459): GCFORMALLOC freed 235K, 59% free 4096K/9991K, external 92K/513K, paused 28ms
I/dalvikvm-heap(24459): Grow heap (frag case) to 7.509MB for 1060016-byte allocation
D/dalvikvm(24459): GCFORMALLOC freed 1035K, 59% free 4096K/9991K, external 92K/513K, paused 24ms
D/dalvikvm(24459): GC_CONCURRENT freed 9K, 59% free 4096K/9991K, external 92K/513K, paused 2ms+3ms
W/KeyCharacterMap( 747): No keyboard for id 0
W/KeyCharacterMap( 747): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
W/InputManagerService( 747): Window already focused, ignoring focus gain of: [email protected]
D/KEEPSCREEN IS(25158): [39] jackpal.androidterm2
D/dalvikvm(24883): GC_EXPLICIT freed <1K, 51% free 2687K/5379K, external 0K/0K, paused 39ms
D/FlurryAgent(24378): Sending report to: http://data.flurry.com/aap.do
D/FlurryAgent(24378): Sending report exception: Connection to http://data.flurry.com refused
D/dalvikvm( 747): GCEXTERNALALLOC freed 78K, 39% free 9307K/15111K, external 2737K/2738K, paused 107ms
D/dalvikvm( 747): GCEXTERNALALLOC freed 11K, 39% free 9308K/15111K, external 2437K/2454K, paused 101ms
I/ActivityManager( 747): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=de.goddchen.android.x.friendquiz/.FriendQuizListActivity } from pid 747
D/FlurryAgent(24378): startSession called
D/FlurryAgent(24378): Initializing Flurry session
D/FlurryAgent(24378): Starting new session
W/Settings(24378): Setting android_id has moved from android.provider.Settings.System to android.provider.Settings.Secure, returning read-only value.
D/FlurryAgent(24378): Sending report to: http://data.flurry.com/aap.do
D/FlurryAgent(24378): Sending report exception: Connection to http://data.flurry.com refused
W/InputManagerService( 747): Starting input on non-focused client [email protected] (uid=10001 pid=24459)
W/IInputConnectionWrapper(24459): showStatusIcon on inactive InputConnection
I/ActivityManager( 747): Displayed de.goddchen.android.x.friendquiz/.FriendQuizListActivity: +234ms
I/ActivityManager( 747): Starting: Intent { cmp=com.facebook.katana/.ProxyAuth (has extras) } from pid 24378
I/ActivityManager( 747): Displayed com.facebook.katana/.ProxyAuth: +280ms
D/FlurryAgent(24378): Ending session
D/dalvikvm(24388): GC_CONCURRENT freed 570K, 48% free 4117K/7879K, external 483K/513K, paused 2ms+3ms
D/Facebook-authorize(24378): Login failed: invalid_key
D/FlurryAgent(24378): startSession called
D/FlurryAgent(24378): Initializing Flurry session
D/FlurryAgent(24378): Continuing previous session
W/InputManagerService( 747): Window already focused, ignoring focus gain of: [email protected]
D/dalvikvm( 747): GCEXTERNALALLOC freed 155K, 39% free 9328K/15111K, external 2938K/2959K, paused 107ms
D/dalvikvm( 747): GCEXTERNALALLOC freed 25K, 39% free 9314K/15111K, external 2598K/2627K, paused 105ms
I/ActivityManager( 747): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=jackpal.androidterm2/.Term } from pid 747
D/FlurryAgent(24378): Ending sessionD/dalvikvm(24459): GC_CONCURRENT freed 449K, 59% free 4124K/9991K, external 92K/513K, paused 3ms+2ms
I see stuff about connections being refused and keys failing.
Check your facebook developer account, maybe?
wow thanks so much for posting the logcat. Can you please try again now, should be fixed (although fb sais it might take some minutes to propagate...) and report if it's working now?
The game is really awesome
great that you like it.
currently implementing first facebook share implementation.
watch out for updates in the next days. I'll be adding more game modes
Goddchen said:
wow thanks so much for posting the logcat. Can you please try again now, should be fixed (although fb sais it might take some minutes to propagate...) and report if it's working now?
Click to expand...
Click to collapse
It imports now! I'll try the game out later. Glad to help you work out your problem.
Be sure to click "thanks"
hey, of course i will thanks you, it's just, the xda app doesn't have a "thank" option
Looking forward to your feedback
Feedback:
Menu and Initial Feedback:
This feedback is mostly negative, but I'm not saying that you're bad at what you do, I'm just telling you how you can make it better in the future there is a lot of work to be done here. You should probably take it off the market to avoid lots of negative feedback that you can never recover from, and when you make the experience better, re-upload it. I have taken my time to suggest a complete re-design for you. I shouldn't have, but I did. Now to begin:
The whole friends import thing is very annoying. You gotta think of a better way than doing it like this. Perhaps, just download the info you need, and not the photos, or use facebook's API to get a random friend for the game when you need it.
The graphics can surely do with improvement. It's nice that it shows a random photo of a friend on the mode selection screen, but it would be better if this photo was not completely opaque, or at least stick a black semi-transparent label above it. Doing this will also help, because the images aren't the best resolution. It will draw the eye away from them. Also, the images are stretched. It would be better if you kept the aspect ratio of the images, and either enlarge the image to touch OR fill the edge of the screen.
Also, as far as the menu goes, It doesn't look great. Instead of Game 1, Game 2, etc. Give the games a real name, much like the Memory game is called "Memory". Also, do you really need the friend quiz logo next to each game mode? How about splitting the menu into built-in games, and 3rd party games (for memory). I don't really like the idea of 3rd party games, but others might.
Games Feedback:
Game 1 (Name to Photo):
The green box at the bottom could do with a re-design.
The text of the names should resize instead of take a new line if the name goes outside the box (to a limit of pixels, and then allow letters to go over the next line). Alternatively, you could also re-size the boxes so that smaller names have smaller boxes.
Audio feedback is nice, but when I tried this out, I had the sound off. You should provide visual and touch feedback (vibration) too! The phone should vibrate a little if the answer is wrong, and a "wrong" sign should appear or a cross go over the name.
I think this would be more fun if it kept a score of correct guesses vs incorrect guesses, instead of allowing the user to guess again until they are correct. If they get it wrong, show them the correct answer by drawing crosses over the incorrect answer and leaving the correct one there, or just hide the incorrect ones from the screen altogether to draw the focus of the user to the correct box.
Sometimes two friends will have the same first name. Keep this in mind. If two friends have the same first name, perhaps an initial for the last name would help.
Game 2: (Age order)
Take my advice from the first one.
This could play out by allowing the user to order the contacts first, and they would earn points for the correct ones, and lose for the incorrect ones. It will then show the user the correct answer in order below their answer.
The actual layout was quite nice for this one. Good job, but it may need to be re-designed a bit if you want it to play out how I think it should.
Game 3: (Guess age)
Most of my friends fall in the same age range, so I was spamming the 16-25 button a lot.
A better way this could play out was if you give some random ages and the user would select the correct one.
For example, if the friend was 20, it might give 19, 20, 21, 22, 23
If the next friend was also 20, it might give 17, 18, 19, 20, 21
this is so that the correct age isn't always in the same spot on the screen, and it would make the game more challenging
Game 4: (Guess location)
The layout for this one was very nice, but the google tiles would not download for me. I was presented with a maps widget with the fb logo in the middle, and the google logo in the corner, but no tiles.
Also, a lot of friends might live in the same city, which would make this game less challenging, or present the user with more than one correct answer.
Maybe you should remove this one. Think it out.
Game 5: (Guess hometown)
Same feedback as game 4
Game 6: (Memory)
I didn't try this one. I like how multiple photos are shown... do that for the main screen, but slower.
Game 6: (Guess birthday)
The year should be shown too. Also, in the settings, you should be able to switch between MM/DD/YY and DD/MM/YY
hey,
wow thanks for that feedback.
who cares if it's negative as long as it is productive, and that it really is
Much work to do for me Thanks
I thought of a solution to the google maps problem.
It's not as nice as being able to zoom and scroll on a dynamic map, but it should work, and maybe reduce download too:
http://code.google.com/apis/maps/documentation/staticmaps/
Small update is published. Already includes some of your ideas xebozone
Check it out in the Market (links are in OP)
Related
I've loved the Eclair dialer since the first screen shot I saw, so when the source dropped, I backported it... I'm just finally getting around to posting it. I haven't tested it anywhere but the latest Cyanogen mod, but it should work on any ROM that's based on AOSP. If you have any success installing it, let me know. Use ADB to push it over the old Contacts.apk in /system/app.
With Wysie's help, I've added more features than I'd originally planned to. Here's the latest one I've put together, I'm working on bringing in more of his features, as well as some others I've got planned. Stay tuned for more.
Now has support for T-mobile Visual Voicemail, Google Voice, YouMail, PhoneFusion, and HulloMail.
Also now featuring 'Navigate to' bit in contact details for those with the latest Google Maps.
Fixed self induced bug on keyboard opening. Also trying out a new install method. I was able to just scan the QR below, download, and install straight from my phone. See how it works for you.
Contacts.apk
checksum: 77ab538901e18738711b7213e29cacf5
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Changelog:
1.4.1
- Fix for keyboard bug.
1.4
- 'Navigate to' option
- PF Visual Voicemail and HulloMail added.
1.3
- Call log enhancements from Wysie
- Enable/Disable each enhancement in Settings
1.2
- Support for YouMail added
- All in one app
- Only shows options for installed VM handlers
- Added preference screen
- Option to use Voicemail button for voicemail or add to contacts
v1.1.2
- Backported Eclair call log for kewlguru
v1.1.1GV
- Voicemail handler changes to Google Voice.
v1.1.1
- Much better fix for keyboard FC. There's now a landscape dialer screen.
v1.1
- Launch Visual Voicemail (if installed) with voicemail button
v1.0.1
- Fixed FC when opening keyboard (it's crude for now, I'll work on it)
- Made dial and VM buttons do what they're supposed to
v1.0
- Backported the full Eclair dialer layout
Looks nice, but I think everyone uses Visual Voicemail if there on T-Mobile or so I'm lead to believe by the download numbers on Market. Still great work though.
will try it right now
thanks!!
Nice work... Thumbs up.
xsnipuhx said:
Looks nice, but I think everyone uses Visual Voicemail if there on T-Mobile or so I'm lead to believe by the download numbers on Market. Still great work though.
Click to expand...
Click to collapse
I've been considering making the voicemail button check to see if visual voicemail is installed, and launch that instead. Good idea?
ChainsDD said:
I've been considering making the voicemail button check to see if visual voicemail is installed, and launch that instead. Good idea?
Click to expand...
Click to collapse
yuuuuuup
ChainsDD said:
I've been considering making the voicemail button check to see if visual voicemail is installed, and launch that instead. Good idea?
Click to expand...
Click to collapse
YES then I would be all over this!
this works perfect on 4.2.5 cyan.
ChainsDD said:
I've been considering making the voicemail button check to see if visual voicemail is installed, and launch that instead. Good idea?
Click to expand...
Click to collapse
i was thinking that too. is there away so when you click that button it gives you the option to choose an app to open and then you can select visual voice mail app and then every time you hit it your vvm app opens.
I'll start integrating Visual Voicemail tomorrow, I'll have it done by the weekend. Should it be automatic, as in if the app is installed it launches that, or should I make it an option?
ChainsDD said:
I'll start integrating Visual Voicemail tomorrow, I'll have it done by the weekend. Should it be automatic, as in if the app is installed it launches that, or should I make it an option?
Click to expand...
Click to collapse
like i suggested before, you should make it allow the user to select the app because not everyone uses the t-mobile visual voicemail app. I'm sure if you got it to do that devs would start cooking it in their roms.
sidenote: i'm using TheOfficial AOSP rom. can you make this compatible or should it work how it is?
edit: just pushed it. it works on TheOfficial. The voicemail button however does not do anything. Tried long pressing it too.
automatic
I use google voice for my voicemail... any chance you could put an option in there for that as well?
Oh and great work! Nice to get a taste of eclair.. and this dialer is pretty cool. Anything else you plan to backport? Like a lockscreen...?
matt_stang said:
I use google voice for my voicemail... any chance you could put an option in there for that as well?
Oh and great work! Nice to get a taste of eclair.. and this dialer is pretty cool. Anything else you plan to backport? Like a lockscreen...?
Click to expand...
Click to collapse
if he made the option for you to choose then it would work good.
I use Google Voice as well. The dialer looks great too.
Force close in landscape
Switching to landscape or using contacts in landscape mode leads to a FC. You might want to be sure it locks itself into portrait mode.
I/WindowManager( 188): Setting rotation to 1, animFlags=1
I/WindowManager( 188): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=2/1/1 nav=3 orien=2 layout=18}
D/PhoneWindow( 782): couldn't save which view has focus because the focused view [email protected] has no id.
D/StatusBar( 188): updateResources
D/AndroidRuntime( 782): Shutting down VM
W/dalvikvm( 782): threadid=3: thread exiting with uncaught exception (group=0x4001e170)
E/AndroidRuntime( 782): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 782): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.contacts/com.android.contacts.DialtactsActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.contacts/com.android.contacts.TwelveKeyDialer}: java.lang.NullPointerException
E/AndroidRuntime( 782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
E/AndroidRuntime( 782): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
E/AndroidRuntime( 782): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3502)
E/AndroidRuntime( 782): at android.app.ActivityThread.access$2200(ActivityThread.java:116)
E/AndroidRuntime( 782): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1798)
E/AndroidRuntime( 782): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 782): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 782): at android.app.ActivityThread.main(ActivityThread.java:4203)
E/AndroidRuntime( 782): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 782): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 782): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
E/AndroidRuntime( 782): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
E/AndroidRuntime( 782): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 782): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.contacts/com.android.contacts.TwelveKeyDialer}: java.lang.NullPointerException
E/AndroidRuntime( 782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
E/AndroidRuntime( 782): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2242)
E/AndroidRuntime( 782): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
E/AndroidRuntime( 782): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
E/AndroidRuntime( 782): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:631)
E/AndroidRuntime( 782): at android.widget.TabHost.setCurrentTab(TabHost.java:317)
E/AndroidRuntime( 782): at android.widget.TabHost.addTab(TabHost.java:210)
E/AndroidRuntime( 782): at com.android.contacts.DialtactsActivity.setupDialerTab(DialtactsActivity.java:131)
E/AndroidRuntime( 782): at com.android.contacts.DialtactsActivity.onCreate(DialtactsActivity.java:79)
E/AndroidRuntime( 782): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
E/AndroidRuntime( 782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
E/AndroidRuntime( 782): ... 12 more
E/AndroidRuntime( 782): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 782): at com.android.contacts.TwelveKeyDialer.onCreate(TwelveKeyDialer.java:179)
E/AndroidRuntime( 782): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
E/AndroidRuntime( 782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
E/AndroidRuntime( 782): ... 22 more
I/Process ( 188): Sending signal. PID: 782 SIG: 3
I/dalvikvm( 782): threadid=7: reacting to signal 3
I/dalvikvm( 782): Wrote stack trace to '/data/anr/traces.txt'
I/ActivityManager( 188): Process com.android.settings (pid 810) has died.
I/DumpStateReceiver( 188): Added state dump to 1 crashes
D/dalvikvm( 188): GC freed 4244 objects / 310128 bytes in 195ms
I/WindowManager( 188): Setting rotation to 0, animFlags=1
I/WindowManager( 188): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=2/1/2 nav=3 orien=1 layout=18}
D/StatusBar( 188): updateResources
I/Process ( 782): Sending signal. PID: 782 SIG: 9
I/ActivityManager( 188): Process android.process.acore (pid 782) has died.
I/ActivityManager( 188): Killing app com.google.process.gapps (pid 791) because provider com.android.providers.im.ImProvider is in dying process android.process.acore
I/Process ( 188): Sending signal. PID: 791 SIG: 9
I/WindowManager( 188): WIN DEATH: Window{43c88340 com.android.launcher/com.android.launcher.Launcher paused=false}
Oops... I'll have a look at that. I use a myTouch, so I completly forgot about the keyboard thing. I'll work out a fix for that before I start on the VM bits. Gonna have to wait 'till tomorrow tho, I gotta be up for work at 4...
matt_stang said:
I use google voice for my voicemail... any chance you could put an option in there for that as well?
Oh and great work! Nice to get a taste of eclair.. and this dialer is pretty cool. Anything else you plan to backport? Like a lockscreen...?
Click to expand...
Click to collapse
As much as I love the 2.0 lockscreen, I think backporting it is a little out of my skillset atm. Changing almost anything in framework-res.apk causes problems with some of the precompiled apps. After I work out the bugs in this and add the VM features, I'll have a look at it tho.
ChainsDD said:
As much as I love the 2.0 lockscreen, I think backporting it is a little out of my skillset atm. Changing almost anything in framework-res.apk causes problems with some of the precompiled apps. After I work out the bugs in this and add the VM features, I'll have a look at it tho.
Click to expand...
Click to collapse
I figured it would be quite a difficult task. But if it's possible, it might be worth it. As there's no telling when we'll be able to have a fully functional eclair rom on the dream. So hey, if you're up for it, go ahead and give it a look
The call and voicemail buttons don't do anything on my g1 running cm4.2.7.1
Update: I decided to discontinue work on LockPicker and therefore open source it. Find the code here. If anyone manages to make this work on Android 2.2+, please let me know!
Disables the Exchange lock screen when it's part of the server's security policy.
Works on HTC Sense only.
NOTE: Froyo is not supported!
Changelog:
v0.95: Added Wildfire (QVGA) support, automatic account detection, added korean translation, fixed chinese translation
v0.94: Android 1.5+ compatible
v0.93: Added es,fr,de,nl,cn
v0.92: Notifications optional
v0.91: fixed FC on startup
v0.9: initial release
Search for Market > Applications > Tools > LockPicker
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
My thanks go to tamburylar for his find which inspired me to create the app!
Nice
Hey, thanks for creating this.
I know there are a few people out there that will appreciate it.
Unfortunately I can't give feedback myself since my exchange server, although asks for me to enable security doesn't ever enforce it, so I never get the lock screen problem.
Good work though and I hope it comes in useful for the other guys that aren't as lucky with their server.
alias_neo said:
Hey, thanks for creating this.
I know there are a few people out there that will appreciate it.
Unfortunately I can't give feedback myself since my exchange server, although asks for me to enable security doesn't ever enforce it, so I never get the lock screen problem.
Good work though and I hope it comes in useful for the other guys that aren't as lucky with their server.
Click to expand...
Click to collapse
Hey, no problem. Creating the icons was probably the most work!
It is idle under normal circumstances and consumes next to no resources, only a tiny amount of memory to run the service.
Only when the server pushes the policy again, it will quickly disable the lock screen and go back to sleep
Great
j0bro said:
Hey, no problem. Creating the icons was probably the most work!
It is idle under normal circumstances and consumes next to no resources, only a tiny amount of memory to run the service.
Only when the server pushes the policy again, it will quickly disable the lock screen and go back to sleep
Click to expand...
Click to collapse
Nicely done. It'll be interesting to see how people get on with it. The security enforcement seems to be a massive annoyance for those suffering from it.
j0bro said:
Hi all,
I just whipped an app together that disables the Exchange lock screen as soon as the server has enforced its policy by using a background service and an observer on the system setting. This requires no polling, scripting, etc. and survives reboots/enforcements.
Search for Market > Applications > Tools > LockPicker
Any comments/issues are appreciated
Click to expand...
Click to collapse
Sounds great, but I don't see it in the marketplace ?
BTW, is it just for the stock exchange client, or will this work with Touchdown etc
Thanks
gudge said:
Sounds great, but I don't see it in the marketplace ?
BTW, is it just for the stock exchange client, or will this work with Touchdown etc
Thanks
Click to expand...
Click to collapse
You must have Android 2.1 running, since this is made natively for that version (Exchange integrated)
j0bro said:
Hi all,
I just whipped an app together that disables the Exchange lock screen as soon as the server has enforced its policy by using a background service and an observer on the system setting. This requires no polling, scripting, etc. and survives reboots/enforcements.
Search for Market > Applications > Tools > LockPicker
Any comments/issues are appreciated
Click to expand...
Click to collapse
Thanks, works perfect
Downloaded this for my Milestone running 2.1. At first it seemed to work. After I rebooted though the application forcecloses (right at boot). When I start the application after booting it seems to keep running (though I'm not sure if I can actually see the service in my task manager) but does nothing to prevent me from having to enter that stupid password : (
I'm happy to help if I can do anything to help you with this issue. Don't know if it's possible to access log files on Android and perhaps send it or something.
I have FC after reboot but LockPicker still works well.
Found out how to log errors in application. Here is a piece of the log file relating to lockpicker:
Code:
I/ActivityManager( 1281): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=nl.fotoniq.android.lockpicker/.LockPicker }
I/ActivityManager( 1281): Displayed activity nl.fotoniq.android.lockpicker/.LockPicker: 329 ms (total 329 ms)
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
E/LockPickerService( 1837): Setting not found
E/LockPickerService( 1837): android.provider.Settings$SettingNotFoundException: lockscreen.lockexchange.enable
E/LockPickerService( 1837): at android.provider.Settings$System.getInt(Settings.java:656)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.disableExchangeLockscreen(LockPickerService.java:101)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.onStartCommand(LockPickerService.java:67)
E/LockPickerService( 1837): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)
E/LockPickerService( 1837): at android.app.ActivityThread.access$3500(ActivityThread.java:119)
E/LockPickerService( 1837): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
E/LockPickerService( 1837): at android.os.Handler.dispatchMessage(Handler.java:99)
E/LockPickerService( 1837): at android.os.Looper.loop(Looper.java:123)
E/LockPickerService( 1837): at android.app.ActivityThread.main(ActivityThread.java:4363)
E/LockPickerService( 1837): at java.lang.reflect.Method.invokeNative(Native Method)
E/LockPickerService( 1837): at java.lang.reflect.Method.invoke(Method.java:521)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/LockPickerService( 1837): at dalvik.system.NativeStart.main(Native Method)
Seems lockpicker can't find the settings on my device or something.
abats said:
Found out how to log errors in application. Here is a piece of the log file relating to lockpicker:
Code:
I/ActivityManager( 1281): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=nl.fotoniq.android.lockpicker/.LockPicker }
I/ActivityManager( 1281): Displayed activity nl.fotoniq.android.lockpicker/.LockPicker: 329 ms (total 329 ms)
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
I/NotificationService( 1281): enqueueToast pkg=nl.fotoniq.android.lockpicker [email protected] duration=0
E/LockPickerService( 1837): Setting not found
E/LockPickerService( 1837): android.provider.Settings$SettingNotFoundException: lockscreen.lockexchange.enable
E/LockPickerService( 1837): at android.provider.Settings$System.getInt(Settings.java:656)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.disableExchangeLockscreen(LockPickerService.java:101)
E/LockPickerService( 1837): at nl.fotoniq.android.lockpicker.LockPickerService.onStartCommand(LockPickerService.java:67)
E/LockPickerService( 1837): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)
E/LockPickerService( 1837): at android.app.ActivityThread.access$3500(ActivityThread.java:119)
E/LockPickerService( 1837): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
E/LockPickerService( 1837): at android.os.Handler.dispatchMessage(Handler.java:99)
E/LockPickerService( 1837): at android.os.Looper.loop(Looper.java:123)
E/LockPickerService( 1837): at android.app.ActivityThread.main(ActivityThread.java:4363)
E/LockPickerService( 1837): at java.lang.reflect.Method.invokeNative(Native Method)
E/LockPickerService( 1837): at java.lang.reflect.Method.invoke(Method.java:521)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/LockPickerService( 1837): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/LockPickerService( 1837): at dalvik.system.NativeStart.main(Native Method)
Seems lockpicker can't find the settings on my device or something.
Click to expand...
Click to collapse
Seems to me that you either don't use the integrated Exchange client of Android 2.1 or your Exchange server doesn't enforce the lockscreen as part of its policy. Makes any sense?
I'll include a check for the setting in the next version, thanks.
j0bro said:
Seems to me that you either don't use the integrated Exchange client of Android 2.1 or your Exchange server doesn't enforce the lockscreen as part of its policy. Makes any sense?
I'll include a check for the setting in the next version, thanks.
Click to expand...
Click to collapse
I use the integrated exchange client, there is nothing else on Milestone 2.1. My account is set up through accounts->corporate etc etc.
My company does enforce the lockscreen, there is no way for me to get around it. Before this I used a windows mobile phone and it was forced on there aswell. Big difference is unlocking on a windows mobile device was much faster.
If there is more I can do to help you track the behaviour on my phone of this application please let me know.
abats said:
I use the integrated exchange client, there is nothing else on Milestone 2.1. My account is set up through accounts->corporate etc etc.
My company does enforce the lockscreen, there is no way for me to get around it. Before this I used a windows mobile phone and it was forced on there aswell. Big difference is unlocking on a windows mobile device was much faster.
If there is more I can do to help you track the behaviour on my phone of this application please let me know.
Click to expand...
Click to collapse
Ahh wait, it is integrated in HTC Sense rather than Android 2.1 itself; this may explain why it wouldn't work on your Motorola. Any luck with LogCat output?
I don't know exactly how you app is meant to work, but there are differences between Vanilla Android and HTC's Sense mail. AFAIK, they don't use the same frameworks, so changes that affect the HTC one will probably be designed to patch over an HTC change. I don't know about vanilla, but I think the app would need to be designed for this.
It's giving me a FC on this ROM after reboot
http://forum.xda-developers.com/showthread.php?t=654030
But after that it seems to work fine again.
An example of what anon2122 ment i guess ?
an0therus3r said:
It's giving me a FC on this ROM after reboot
http://forum.xda-developers.com/showthread.php?t=654030
But after that it seems to work fine again.
An example of what anon2122 ment i guess ?
Click to expand...
Click to collapse
Yup saw that happening as well; found out that it is illegal to log with a tag of more than 23 characters. The logic/humor of this requirement escapes me though
Check for an update shortly in which I will have fixed this.
EDIT: update is on the Market right now.
I Love you, dude works perfect.
not work on my Moto Milestone
ricky119 said:
not work on my Moto Milestone
Click to expand...
Click to collapse
Actually I am working together with another Milestone user to get it working on that as well. Stay tuned!
j0bro said:
Actually I am working together with another Milestone user to get it working on that as well. Stay tuned!
Click to expand...
Click to collapse
thanks man,
BTW, I found theres another similar app which is under testing and seems can work on milestone.
Maybe you can talk and discuss with the author.
http://forum.xda-developers.com/showthread.php?p=6072131#post6072131
Hey guys,
I've been playing about with android for about a year now and I've written this app. It's a location and time-based profile application, so you can set ringer volume, vibrate mode and ring tones for when you are asleep or at work.
It's like an extremely light-weight version of Locale with very few features
Eventually I'll put it on the Market, so I'm trying to figure out if there's going to be enough interest for it.
-Would you pay 60p-£1 ($1 to £1.50) for it?
-If I put it on there as free and ask people to donate, will enough people bother at least to cover the Market fee... do people actually donate beer-money if they know they can get it for free?
-Let me know of any bugs or suggestions (Note: I'd like to keep it simple, if you want lots of features, then I'd suggest a different app)
-This version will expire mid February. I'll hopefully have decided how I want to proceed with it after mid February.
Cheers all!
Usage Instructions:
Llama comes with a predefined set of Profiles, but you can customise these.
Llama uses 'events'. Each event has a set of conditions and actions. When all of the conditions are met, the actions are run. Llama comes with some default events, but you can customise them appropriately. One of the events is named 'Quiet at night', and is based on the fact that you are at home, and the time is after 10pm. This means that when it is late and you are at home, it will turn the ringer to a lower volume. However, if you are at the pub and it's after 10pm, it will leave the ringer alone (NOTE: this is assuming that your home and the pub are suitably far away. Llama works best in built up areas with lots of phone masts). You can also create an event that disables/enables APN mobile data, so your phone isn't pointlessly checking your email overnight
Llama uses no data whatsoever, so you have to teach it the IDs of the phone masts near your home and workplace. Doing this is easy. Just go to the 'Areas' tab and long-press to tell the app to 'start learning' your home or workplace. Tell it how long you plan to be at home or work and it'll make a note of the phone masts that it finds. Then do the same for when you are at work.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Changelog:
1.2011.01.28.1330
-Donation button added
-Help text added
-Import/Export/Apn On-Off menus condensed into a popup
-Package name changed so it can be uploaded to the market after some evil person uploaded it to the market without my permission
1.2011.01.25.1500
-Wifi action can be set to only turn off wifi if not connected to a wifi network
-Improvements/hacks to the keylock action, because the API misbehaves if the service gets killed between disabling then reenabling they key lock
1.2011.01.22.1710
-Charging/Discharging condition
-Run application action
-Disable keylock action
-Confirm deletes in area, events and profiles
-Option to set whether 'no signal' causes Llama to leave an area
-Stuff is sorted alphabetically now
-Now expires 15th Feb
1.2011.01.12.2110
-Cdma network dump if you turn on Debug -> Write to LlamaLog.txt
(Not that exciting)
1.2011.01.10.2120
- Fix for Cdma networks (hopefully)
1.2011.01.09.1940
- Added Bluetooth toggle
- Added Day of the week condition
- Added a way to remove cells from an area
- Logging and data import/export goes in /sdcard/Llama
- Added free warning for twats that like to charge other people money for applications they have not written
1.201012262100
- Added Wifi toggle
ATTACHMENT REMOVED
Go get it from the market now
Looks good - I'll have a play and report back any feedback
It'd be handy to be able to turn wifi on/off at certain locations - no point having it on in the office when there's no open wifi to connect to.
Any chance of an option to hide the notification icon from the titlebar (show it only shows in the dropdown?)
Thinking some more, it'd be handy to be able to have location categories - something like:
* Home (category)
- My house
- Parents house
* Work
- London's office
- Cambridge office
That way I can have events assigned to "home" or "work" without having to duplicate rules, or merge multiple locations together.
I've added a WiFi toggle. I'll have a think about the area grouping. The point of the notification is so you can see what profile is active by the number of dots on the icon. You can completely hide the icon in the settings. I'm not certain that Llama is the kind of application you need constant access to via the notification bar.
This reminds me of sman application which was there on my p910i. I have been lookinh for this.
Will it be possible for you to add triggering some event such as sms or ringtone. ?
Sent from my X10i using XDA App
Force close. Android 2.1. =[ was looking fwd to this app.
[ send from my huawei ascend | ipodify.net ]
dEris said:
Force close. Android 2.1. =[ was looking fwd to this app.
[ send from my huawei ascend | ipodify.net ]
Click to expand...
Click to collapse
It will have written an error report to your SDCard. Can you send me a copy of the LlamaLog.txt that appears on your SDCard to [email protected].
ta
Kebab3000 said:
EDIT: attachment removed because some unsavoury person decided they'd publish it on the market for me. still, nice to know it would get '< 50 downloads'
Click to expand...
Click to collapse
Ack. As far as I can tell it's been deleted now (at least I couldn't find the fake version when searching) - Do you still have plans to release this? I'm finally using it properly now I'm back at work and have found it to work perfectly so far, so it'd be a shame for it to expire on me now.
I'd happily pay £1 for it
benjymous said:
Ack. As far as I can tell it's been deleted now (at least I couldn't find the fake version when searching) - Do you still have plans to release this? I'm finally using it properly now I'm back at work and have found it to work perfectly so far, so it'd be a shame for it to expire on me now.
I'd happily pay £1 for it
Click to expand...
Click to collapse
I emailed the bloke and he removed it. I also reported it to Google who haven't done much about the rest of his probably stolen apps/themese. He's DavinciDevelopers by the way. If anyone's bored, buy his apps, give them 1 star, then refund
I'm still not 100% sure if I'll release it, but it's likely I will in some form. I need to decide about whether to have it as just a paid version or free+donate. There's still 3 weeks before it expires, and I'll happily extend that if I haven't decided by then.
Cool - glad you've not lost heart after that
I noticed another issue - there doesn't seem to be a way of removing a cell from a location - I accidentially added a cell to both "Home" and "Work". Ended up deleting and recreating the "Home" location.
This is using the (1.20101226) build, as I didn't get a chance to grab the newer version
Yep, known issue I'll probably add an item to the long-press menu to remove a cell from an area.
That does have the downside that you have to have seen the cell recently to remove it. If I just show the cell IDs in an area, then you wouldn't know which to remove.
Any way you could use the Google APIs to get a vague description of the antenna location?
Though I'm happy with just spotting it in the recent list, as that's where I accidentally added it
Kebab3000 said:
I'm still not 100% sure if I'll release it, but it's likely I will in some form. I need to decide about whether to have it as just a paid version or free+donate. There's still 3 weeks before it expires, and I'll happily extend that if I haven't decided by then.
Click to expand...
Click to collapse
Sad to see it's gone. I just discovered this thread.
I just discovered it, I wish I knew about this app man id love to try it n heh I would buy it too or donate
Swyped using SuperSonic
So is this basically just your version of Tasker?
Tasker is an application for Android which performs Tasks (sets of Actions) based on Contexts (application, time, date, location, event, gesture) in user-defined Profiles, or in clickable or timer home screen widgets.
Click to expand...
Click to collapse
DiGi760 said:
So is this basically just your version of Tasker?
Click to expand...
Click to collapse
Pretty much. It started out as a university project 5 years ago on Series 60, and I reimplemented it when I switched to android. There's plenty of apps already like it on the market, so I don't want to completely replicate the functionality of Tasker.
benjymous said:
Any way you could use the Google APIs to get a vague description of the antenna location?
Click to expand...
Click to collapse
That'd mean it would need to use data. Llama's unique "selling" point at the moment is it doesn't need any data and it just sits there looking at cell tower IDs
tdusen said:
Sad to see it's gone. I just discovered this thread.
Click to expand...
Click to collapse
It'll be back when I have time to put a 'If you bought this off a douchebag on the market you should demand a refund' dialog box
Kebab3000 said:
It'll be back when I have time to put a 'If you bought this off a douchebag on the market you should demand a refund' dialog box
Click to expand...
Click to collapse
...and it's back. Keep the feedback coming
I'm glad to see this is back. Looks like a great app.
Sent from my HTC Glacier using XDA App
Wanted to try this out but it just force closes on my gingerbread rom
Sent from my ADR6300 using XDA App
FC for me also.
Here's the exception from logcat
Code:
I/ActivityManager( 104): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10
200000 cmp=com.kebab.LlamaDroid/.LlamaUi }
I/ActivityManager( 104): Start proc com.kebab.LlamaDroid for activity com.kebab.LlamaDroid/.LlamaUi: pid=1265 uid=10089 gids={3001,
1015}
D/AK8973 ( 72): Compass Start
D/Sensors ( 104): open_akm, fd=147
I/LlamaDroid( 1265): InitCellListener
I/LlamaDroid( 1265): androidID=2125c55ace0a96e5
I/LlamaDroid( 1265): starting to listen
I/LlamaDroid( 1265): requesting update
D/AndroidRuntime( 1265): Shutting down VM
W/dalvikvm( 1265): threadid=1: thread exiting with uncaught exception (group=0x40025a38)
I/global ( 1265): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is
required.
E/AndroidRuntime( 1265): FATAL EXCEPTION: main
E/AndroidRuntime( 1265): java.lang.RuntimeException: Unable to create service com.kebab.LlamaDroid.LlamaService: java.lang.ClassCast
Exception: android.telephony.cdma.CdmaCellLocation
E/AndroidRuntime( 1265): at android.app.ActivityThread.handleCreateService(ActivityThread.java:3140)
E/AndroidRuntime( 1265): at android.app.ActivityThread.access$3300(ActivityThread.java:135)
E/AndroidRuntime( 1265): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2202)
E/AndroidRuntime( 1265): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1265): at android.os.Looper.loop(Looper.java:144)
E/AndroidRuntime( 1265): at android.app.ActivityThread.main(ActivityThread.java:4937)
E/AndroidRuntime( 1265): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1265): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1265): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 1265): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 1265): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1265): Caused by: java.lang.ClassCastException: android.telephony.cdma.CdmaCellLocation
E/AndroidRuntime( 1265): at com.kebab.LlamaDroid.LlamaService$2.onCellLocationChanged(LlamaService.java:495)
E/AndroidRuntime( 1265): at com.kebab.LlamaDroid.LlamaService.initCellListener(LlamaService.java:527)
E/AndroidRuntime( 1265): at com.kebab.LlamaDroid.LlamaService.onCreate(LlamaService.java:105)
E/AndroidRuntime( 1265): at android.app.ActivityThread.handleCreateService(ActivityThread.java:3125)
E/AndroidRuntime( 1265): ... 10 more
W/ActivityManager( 104): Force finishing activity com.kebab.LlamaDroid/.LlamaUi
Hey everyone,
i have recently found out about the Aviary Photo Editing SDK for Android.
Check it out at http://developers.aviary.com/.
I have quickly put together a nice little app which makes use of this SDK.
The Aviary SDK supports things like adding stickers, text, various photo effects, cropping, rotating, drawing, etc...
You can select your local photos or choose to browse your Facebook photos and those of your Facebook friends.
It also easily integrates with all your existing photo apps: simply use the share/send function of those apps and choose Easy Photo Editor to handle it
Check it out at https://market.android.com/details?id=de.goddchen.android.easyphotoeditor or use the qr code
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Looking forward to your feedback! Feature requests, bugs, etc...
Goddchen
Great editor!
just published a minor update:
v0.1.2:
* Some small bugfixes
* Fixed some strings
* Fixed focus in webpages import screen
v0.1.1:
* Added many more ways to import photos from different services like (Facebook, Flickr, Dropbox, Picasa/Google+ or any webpage)
Click to expand...
Click to collapse
Since the last update, the scroll speed of the gridview has highly increased I'm now using the android-generated thumbnails directly, that gave it quite a boost
Still happy about any kind of feedback!
Thank you.
Update 0.3 now has the updated Aviary SDK (2.0.3) which features HIRES output! Save your edited photos in their original resolution
Published 0.3.2:
Fixes properly saving hires output when sending a photo from Gallery (or similar apps) to Easy Photo Editor via share function.
New update 0.3.4:
* Preserves original Exif infos
* Edited photos now visible in other gallery apps
Thanx for removing the .nomedia file!
It still removes the exif data. Maybe you can have another look at the piece of code that's suposed to save it?
rogier666 said:
Thanx for removing the .nomedia file!
It still removes the exif data. Maybe you can have another look at the piece of code that's suposed to save it?
Click to expand...
Click to collapse
Hey,
thanks for the feedback. Could you please give a little more detail (what kind of photo did you choose: camera photo, downloaded photo from the internet, facebook photo, ...? Was hires output successful?) and maybe a logcat? I tried with various files and preserving exif information works fine for me.
Hiya,
Motorola Defy (stock ROM), camera photo.
The images are saved at the original camera resolution (5 Mpix), but all the exif data is gone.
I/ActivityManager( 1386): Starting activity: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) }
D/ViewImage(23050): ViewImage onPause
D/ViewImage HDMI(23050): onPause
D/ViewImage HDMI(23050): Send >>> EXTDISP_CONTROL_DISPLAY hdmi= false tvout = false
D/ViewImage HDMI(23050): Send : com.motorola.intent.action.EXTDISP_CONTROL_DETECTIONhdmi = false tvout = false
I/ActivityManager( 1386): Displayed activity android/com.android.internal.app.ChooserActivity: 992 ms (total 992 ms)
I/ActivityManager( 1386): Starting activity: Intent { act=android.intent.action.SEND typ=image/jpeg flg=0x3000000 cmp=de.goddchen.android.easyphotoeditor/.activities.AviaryActivity (has extras) }
D/de.goddchen.android.easyphotoeditor(23075): android.intent.extra.STREAM = content://media/external/images/media/154
D/ViewImage(23050): ViewImage onStop
V/ImageDecoderLoader(23050): cancelAllTasks
D/ImageProcessor-JNI(23050): time elapsed 0.000000000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000305000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000031000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000214000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000000000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000244000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000000000 in timer ImageProcessor_release
D/ImageProcessor-JNI(23050): time elapsed 0.000244000 in timer ImageProcessor_release
E/Parcel ( 1386): Reading a NULL string not supported here.
I/ActivityManager( 1386): Starting activity: Intent { dat=content://media/external/images/media/154 cmp=de.goddchen.android.easyphotoeditor/com.aviary.android.feather.FeatherActivity (has extras) }
D/FlurryAgent(23075): Initializing Flurry session
D/FlurryAgent(23075): New session
D/FlurryAgent(23075): Initializing AppCircle
I/feather (23075): screen size: 480x854
E/feather (23075): [FeatherActivity] , MAX MEMORY, 30
E/feather (23075): [FeatherActivity] , com.aviary.android.feather.FeatherActivity
I/ActivityManager( 1386): Displayed activity de.goddchen.android.easyphotoeditor/com.aviary.android.feather.FeatherActivity: 285 ms (total 345 ms)
I/image (23075): setImageBitmap: [email protected]
E/feather (23075): [FeatherActivity] , final.size: 800x597
W/feather (23075): [FeatherContentProvider] , we need to delere: 0 loitering sessions
W/feather (23075): [FeatherContentProvider] , deleted 0 loitering sessions
I/feather (23075): onLayout: true
E/filter-native(23075): >>> SKBAutoColors::execute time = 73 ms <<<
E/filter-native(23075): >>> HistEqual::execute time = 360 ms <<<
E/filter-native(23075): 800x597 => 800x597
E/filter-native(23075): time: 443 ms (success:1)
E/filter-native(23075): store result in the passed java Bitmap
E/filter-native(23075): (log) total time: 644 ms
I/image (23075): setImageBitmap: [email protected]
I/image (23075): setImageBitmap: [email protected]
W/feather (23075): [FilterManager] , [recycle] original Bitmap: [email protected]
D/dalvikvm(22987): GC_FOR_MALLOC freed 11103 objects / 534224 bytes in 33ms
I/image (23075): setImageBitmap: null
I/image (23075): setImageBitmap: null
D/FlurryAgent(23075): Initializing Flurry session
D/FlurryAgent(23075): New session
D/FlurryAgent(23075): Initializing AppCircle
I/ActivityManager( 1386): Displayed activity de.goddchen.android.easyphotoeditor/.activities.AviaryActivity: 9494 ms (total 9494 ms)
D/dalvikvm(23075): GC_FOR_MALLOC freed 19824 objects / 1270976 bytes in 72ms
I/dalvikvm(23075): Jit: resizing JitTable from 8192 to 16384
D/skia-external(23075): SkImageDecoder::Factory
D/skia-external(23075): curr: 0x8120b294
D/skia-external(23075): codec: 0x0
D/skia-external(23075): codec: 0x3a50b0
D/skia-external(23075): codec found
E/filter-native(23075): >>> SKBAutoColors::execute time = 1098 ms <<<
E/filter-native(23075): >>> HistEqual::execute time = 4761 ms <<<
E/filter-native(23075): 2592x1936 => 2592x1936
E/filter-native(23075): time: 6288 ms (success:1)
E/filter-native(23075): Attention, you have leaked bitmaps!!! there are still 1 bitmaps stored
D/skia-external(23075): SK_RELEASE
D/skia-external(23075): SkImageEncoder::Create
D/skia-external(23075): curr: 0x8120b28c
D/skia-external(23075): codec: 0x0
D/skia-external(23075): codec: 0x35ba80
D/skia-external(23075): codec found
D/de.goddchen.android.easyphotoeditor(23075): Preserving exif info
E/de.goddchen.android.easyphotoeditor(23075): Error preserving exif info
E/de.goddchen.android.easyphotoeditor(23075): java.lang.NullPointerException
E/de.goddchen.android.easyphotoeditor(23075): at android.media.ExifInterface.saveAttributes(ExifInterface.java:243)
E/de.goddchen.android.easyphotoeditor(23075): at de.goddchen.android.easyphotoeditor.async.SaveHiresImageAsyncTask.preserveExif(SaveHiresImageAsyncTask.java:122)
E/de.goddchen.android.easyphotoeditor(23075): at de.goddchen.android.easyphotoeditor.async.SaveHiresImageAsyncTask.doInBackground(SaveHiresImageAsyncTask.java:170)
E/de.goddchen.android.easyphotoeditor(23075): at de.goddchen.android.easyphotoeditor.async.SaveHiresImageAsyncTask.doInBackground(SaveHiresImageAsyncTask.java:1)
E/de.goddchen.android.easyphotoeditor(23075): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/de.goddchen.android.easyphotoeditor(23075): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/de.goddchen.android.easyphotoeditor(23075): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/de.goddchen.android.easyphotoeditor(23075): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/de.goddchen.android.easyphotoeditor(23075): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/de.goddchen.android.easyphotoeditor(23075): at java.lang.Thread.run(Thread.java:1096)
E/Parcel ( 1386): Reading a NULL string not supported here.
I/ActivityManager( 1386): Starting activity: Intent { dat=file:///mnt/sdcard/easyphotoeditor/Easy%20Photo%20Editor/1330794047956-hires.jpg cmp=de.goddchen.android.easyphotoeditor/.activities.OutputActivity }
W/InputManagerService( 1386): Starting input on non-focused client [email protected] (uid=10154 pid=23075)
I/ActivityManager( 1386): Displayed activity de.goddchen.android.easyphotoeditor/.activities.OutputActivity: 514 ms (total 514 ms)
Thanks rogier666,
the logcat pointed me to a bug in the Android implementation. I have implemented a fix and it is being published right now Please try the new update (0.3.6).
Thanx for the update. It saves some exif data now, but not all of it. The most important tag is still lost.
Camera Model is changed (you're appending "edited with Easy Photo Editor" to the camera model).
The exif tags "creation software," "color representation," lens aperture," and "ISO speed" are lost.
And the horizontal and vertical resolution tags are changed from the original value to 96.
But what really matters is that the "date picture taken" tag is lost, and that messes up the display order in all gallery apps. And of course you can't check back when you shot the pic if you only have the Easy Photo Editor-enhanced copy left.
Changing the original file name into some random number is not such a good idea either. Image file names often hold useful info (like date and time), and file managers tend to sort pictures by file name.
What about keeping the original file name and simply append "hires" to it? If this causes conflicts when you edit the same picture twice, just do something like:
> if filename doesn't contain "hires_*" then append "hires_1"
> if filename contains "hires_*" then increase last digit by one
I tried lots of Android image editors and they all break the exif data.
If your app can preserve all exif tags (especially the "date picture taken" tag) you'll be the first in the android market that gets it right.
If you can preserve the original file name (with a suffix to indicate it's edited) that would be even better.
And if your app can keep all exif data, preserve the file name, and gives us the choice to save edited pics to the same folder as the originals that would be absolutely great.
rogier666 said:
Thanx for the update. It saves some exif data now, but not all of it. The most important tag is still lost.
Camera Model is changed (you're appending "edited with Easy Photo Editor" to the camera model).
The exif tags "creation software," "color representation," lens aperture," and "ISO speed" are lost.
And the horizontal and vertical resolution tags are changed from the original value to 96.
But what really matters is that the "date picture taken" tag is lost, and that messes up the display order in all gallery apps. And of course you can't check back when you shot the pic if you only have the Easy Photo Editor-enhanced copy left.
Changing the original file name into some random number is not such a good idea either. Image file names often hold useful info (like date and time), and file managers tend to sort pictures by file name.
What about keeping the original file name and simply append "hires" to it? If this causes conflicts when you edit the same picture twice, just do something like:
> if filename doesn't contain "hires_*" then append "hires_1"
> if filename contains "hires_*" then increase last digit by one
I tried lots of Android image editors and they all break the exif data.
If your app can preserve all exif tags (especially the "date picture taken" tag) you'll be the first in the android market that gets it right.
If you can preserve the original file name (with a suffix to indicate it's edited) that would be even better.
And if your app can keep all exif data, preserve the file name, and gives us the choice to save edited pics to the same folder as the originals that would be absolutely great.
Click to expand...
Click to collapse
Hey,
thanks for the detailed feedback!
I'm actually a bit confused about the results.
I am using Android's native ExifInterface:
http://developer.android.com/reference/android/media/ExifInterface.html
So i am only able to make use of the TAG_* constants that are defined there. Actually i thought TAG_DATETIME is what you are referencing to. But obviously it is not.
To test the exif information in input and output image i was using the app "Jpeg Exif Viewer"
https://market.android.com/details?id=com.ohakado.exifviewx
Could you please see what your results are in this app?
For the file naming convention: good idea, i will give it some thoughts and integrate it soon - won't get to do much on the app until end of the week
Goddchen
Goddchen
Found the problem.
Your app saves all the "android os exif interface" tags, but it only saves some of the standard exif info. It saves the date/time tag, but it loses the data/time digitized and date/time original tags.
My gallery apps (stock and QuickPic) sort images by "date modified." QuickPic and other apps have an option to replace "date modified" with the info from the date/time original tag, but of course this can only work if Easy Photo Editor keeps the date/time original tag.
altered:
file name (date -> random number)
lost (exif):
aperture value
color space
components configuration
compression
date/time digitized !!!
date/time original !!!
exif image height
exif image width
exif version
flashpix version
iso speed ratings
resolution unit
scene capture type
software
thumbnail data
thumbnail length
thumbnail offset
user comment
x resolution
y resolution
ycbcr positioning
added (exif):
f number
light source
metering mode
white balance
Jpeg Exif Viewer doesn't have an "export to text" option, so I've attached screenshots of the output. I also added the original and edited image. I had to zip the pics up 'cos they're too big for the forums jpg file size limit.
Hope this helps in making your app preserve the date/time original and date/time digitized tags. Maybe you can also add an option to replace "date modified" by "date/time original?"
Kodak Perfect Touch and the stock image editor in my Motorola Defy preserve all the exif tags, so it can be done.
wow thanks so much for your effort!
as already mentioned, i will have time to work on it at the end of this week.
Currently i'm checking out Apache Commons Sanselan for EXIF processing. Looks promissing so far:
http://commons.apache.org/sanselan/
Goddchen
@rogier666
could you try out the attached version? It now uses Apache Sanselan to preserve EXIF info. I will integrate it in the next update if you approve that it's working properly...
I'm on my way to work so I only had time for a quick glance. So far it looks good: all the exif tags survived.
A few suggestions that could make the user interface a little more intuitive:
1) Instead of an "apply" button, what about auto-applying and replacing the "apply" button with an "undo" button? This way moving to the other editing options won't erase your previous edit.
2) What about renaming the "done" button to "save" (that's the obvious thing to look for when you want to save your edits)?
3) And maybe move the undo/save button to the bottom of the screen? That way it sits close to the back button so people will not so easily forget to save their edits before they try to move back to thumbnail grid.
Anyway, it looks like your app is the first (free) photo editor that doesn't kill the exif tags. Congrats!
@rogier666
thanks for the additions feedback. I will consider it.
But for now the exif feature has priority.
I made a slight change:
I do now set the "Exif Modify Date" to the current date. I think that's more appropriate since the image really was edited. What do you think?
Could please check out the new APK?
I didn't see any "modify date" tag in ExifViewer, so the change does no harm
I'd say the latest version is ready to hit the Android Market, err I mean Google play.
Is there any solution available for these errors I am getting? While using any app I frequently gets Activity X has stopped responding. Force close or wait. I have tried wiping, formatting, upgrading and downgrading android version, changing ROM's and everything but not able to solve this error.
and I don't think Samsung service center will replace my phone. They have a BS support. When I tried to report this error, they didn't even write the problem and said "We'll look for the problems ourselves." I told them that you have to install and use apps if you want to notice problem but they just handed me with upgrading the firmware and saying 'Everything is fine sir, we found no problem. Just check your memory card for virus before inserting it'. XDA is now only hope.
Logcat available on Page 2. PLEASE HELP ME!
Call them back
Samsung support is terrible, if you call in and get someone who isn't helpful just hang up and call back until you get someone who isn't an idiot.
Also try and re install rom manager completely and use the latest touch version. Make sure when you flash a new rom you are doing a factory reset in CWM a few times and wiping the cache and system partition before flashing a new rom.
Hope that helps.
The thing is I get it even on stock ROM. Adding to that I also get 'system not responding' when installing an app but I solved that problem by running autostarts and going to 'On Applications Installed' list and disabled the Android System there.
Anyone?
Sent from my GT-I5800 using xda premium
Arkadaşlae yok mu kimse?
mavera said:
Arkadaşlae yok mu kimse?
Click to expand...
Click to collapse
I translated and it says "Do not friend someone" Can you explain what does it mean?
Sent from my GT-I5800 using xda premium
mavera said:
Arkadaşlae yok mu kimse?
Click to expand...
Click to collapse
Please speak english only , and not what you're speaking now .
Which Samsung phone is this, exactly? Also out of curiosity, any reason your not taking it back to your carrier? (I assume this is because it was either purchased off contract or second hand or something).
I was going to say the obligatory "Factory reset" but it sounds like you did that.
kaizcv said:
Make sure when you flash a new rom you are doing a factory reset in CWM a few times and wiping the cache and system partition before flashing a new rom.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Click to expand...
Click to collapse
I always do.
ninmeister said:
Which Samsung phone is this, exactly? Also out of curiosity, any reason your not taking it back to your carrier? (I assume this is because it was either purchased off contract or second hand or something).
I was going to say the obligatory "Factory reset" but it sounds like you did that.
Click to expand...
Click to collapse
Lol did you read original post about their service.
Sent from my GT-I5800 using xda premium
Too bad that I'm the only one. I Google it and I found my thread on top :Facepalm:.
SO basically I have to live with a unstable phone with lots of fc popping up every second.
friend863 said:
Too bad that I'm the only one. I Google it and I found my thread on top :Facepalm:.
SO basically I have to live with a unstable phone with lots of fc popping up every second.
Click to expand...
Click to collapse
I am not sure if we have "Superwipe" script for G3 but if we do, maybe you can try it out before flashing a ROM and erasing cache. It should helpsl erase any residue
Zerofill does better maybe which I have already tried. Here is report of Opera Mini ANR.
I/InputDispatcher( 2541): Application is not responding: Window{4062fba0 AtchDlg:com.opera.mini.android/com.opera.mini.android.Browser paused=false}. 5003.8ms since event, 5003.6ms since wait started
I/WindowManager( 2541): Input event dispatching timed out sending to AtchDlg:com.opera.mini.android/com.opera.mini.android.Browser
I/Process ( 2541): Sending signal. PID: 3991 SIG: 3
I/dalvikvm( 3991): threadid=4: reacting to signal 3
I/dalvikvm( 3991): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 2541): Sending signal. PID: 2541 SIG: 3
I/dalvikvm( 2541): threadid=4: reacting to signal 3
I/dalvikvm( 2541): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 2541): Sending signal. PID: 2651 SIG: 3
I/dalvikvm( 2651): threadid=4: reacting to signal 3
I/dalvikvm( 2651): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 2541): Sending signal. PID: 2618 SIG: 3
I/dalvikvm( 2618): threadid=4: reacting to signal 3
I/dalvikvm( 2618): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm( 2541): GC_CONCURRENT freed 698K, 47% free 5931K/11079K, external 375K/887K, paused 5ms+25ms
D/dalvikvm( 2541): GC_EXPLICIT freed 104K, 47% free 5954K/11079K, external 375K/887K, paused 121ms
E/ActivityManager( 2541): ANR in com.opera.mini.android (com.opera.mini.android/.Browser)
E/ActivityManager( 2541): Reason: keyDispatchingTimedOut
E/ActivityManager( 2541): Load: 3.12 / 13.15 / 12.81
E/ActivityManager( 2541): CPU usage from 4949ms to -1578ms ago:
E/ActivityManager( 2541): 233% 3991/com.opera.mini.android: 230% user + 3.2% kernel / faults: 256 minor 5 major
E/ActivityManager( 2541): 44% 2541/system_server: 29% user + 14% kernel / faults: 267 minor
E/ActivityManager( 2541): 18% 2290/akmd2: 2.4% user + 16% kernel
E/ActivityManager( 2541): 1% 2651/com.android.phone: 0.7% user + 0.3% kernel / faults: 28 minor
E/ActivityManager( 2541): 0.3% 3/ksoftirqd/0: 0% user + 0.3% kernel
E/ActivityManager( 2541): 0.1% 291/kadctsd: 0% user + 0.1% kernel
E/ActivityManager( 2541): 0.1% 2194/svnetd/0: 0% user + 0.1% kernel
E/ActivityManager( 2541): 0% 2278/servicemanager: 0% user + 0% kernel
E/ActivityManager( 2541): 100% TOTAL: 88% user + 11% kernel
E/ActivityManager( 2541): CPU usage from 973ms to 1524ms later:
E/ActivityManager( 2541): 245% 3991/com.opera.mini.android: 238% user + 7.2% kernel / faults: 47 minor
E/ActivityManager( 2541): 241% 4017/Thread-20: 236% user + 5.4% kernel
E/ActivityManager( 2541): 5.4% 3996/Compiler: 1.8% user + 3.6% kernel
E/ActivityManager( 2541): 32% 2541/system_server: 9% user + 23% kernel
E/ActivityManager( 2541): 21% 2591/InputDispatcher: 7.2% user + 14% kernel
E/ActivityManager( 2541): 5.4% 2627/er$SensorThread: 0% user + 5.4% kernel
E/ActivityManager( 2541): 3.6% 2552/SensorService: 0% user + 3.6% kernel
E/ActivityManager( 2541): 3.6% 2553/er.ServerThread: 3.6% user + 0% kernel
E/ActivityManager( 2541): 20% 2290/akmd2: 3.6% user + 16% kernel
E/ActivityManager( 2541): 18% 2628/akmd2: 1.8% user + 16% kernel
E/ActivityManager( 2541): 0.8% 2651/com.android.phone: 0% user + 0.8% kernel / faults: 1 minor
E/ActivityManager( 2541): 0.8% 2661/Compiler: 0.8% user + 0% kernel
E/ActivityManager( 2541): 100% TOTAL: 84% user + 15% kernel
I/InputDispatcher( 2541): Dropping event because the pointer is not down.
D/dalvikvm( 3991): GC_CONCURRENT freed 666K, 45% free 4754K/8583K, external 241K/692K, paused 4ms+4ms
I/InputDispatcher( 2541): Application is not responding: Window{4062fba0 AtchDlg:com.opera.mini.android/com.opera.mini.android.Browser paused=false}. 5003.6ms since event, 5003.3ms since wait started
I/WindowManager( 2541): Input event dispatching timed out sending to AtchDlg:com.opera.mini.android/com.opera.mini.android.Browser
I/Process ( 2541): Sending signal. PID: 3991 SIG: 3
I/dalvikvm( 3991): threadid=4: reacting to signal 3
I/dalvikvm( 3991): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 2541): Sending signal. PID: 2541 SIG: 3
I/dalvikvm( 2541): threadid=4: reacting to signal 3
I/dalvikvm( 2541): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 2541): Sending signal. PID: 2651 SIG: 3
I/dalvikvm( 2651): threadid=4: reacting to signal 3
I/dalvikvm( 2651): Wrote stack traces to '/data/anr/traces.txt'
I/Process ( 2541): Sending signal. PID: 2618 SIG: 3
I/dalvikvm( 2618): threadid=4: reacting to signal 3
I/dalvikvm( 2618): Wrote stack traces to '/data/anr/traces.txt'
D/dalvikvm( 2541): GC_EXPLICIT freed 735K, 46% free 5995K/11079K, external 504K/887K, paused 123ms
E/ActivityManager( 2541): ANR in com.opera.mini.android (com.opera.mini.android/.Browser)
E/ActivityManager( 2541): Reason: keyDispatchingTimedOut
E/ActivityManager( 2541): Load: 3.16 / 12.51 / 12.61
E/ActivityManager( 2541): CPU usage from 10184ms to 0ms ago:
E/ActivityManager( 2541): 247% 3991/com.opera.mini.android: 245% user + 1.7% kernel / faults: 211 minor
E/ActivityManager( 2541): 31% 2541/system_server: 20% user + 11% kernel / faults: 37 minor
Click to expand...
Click to collapse
Full logcat available in attachment.
Please, please help me to solve this error. I am using unstable phone since September 2011 and starting to hate Android.
Bump. It has been more than year since the beginning of error and I am not able to solve it neither found solution on Google (it looks I am the only one in whole world). Haven been using unstable phone for so long and can't even afford new phone for now. Not to mention this was my first Android phone. Anyone have any idea what can cause this error? I have tried almost every possible thing.
I think the error can be due to usage of more memory but I have got this error even on newly installed firmware with 0 apps.