Skip to main content

Posts

ArrayAdapter notifyOnDataSetChanged doesn't refresh underlying ListView

If for any reason you're using ArrayAdapter to feed your ListView on Android you may be struggling with the fact that whatever you do - executing notifyOnDataSetChanged doesn't result in the corresponding ListView getting refreshed. There is one simple solution for this (and no, I am not talking about one that I saw on one forum where it was suggested to recreate the ArrayAdapter , which on a first glance may be a good idea at least until you're happy with the list jumping every time to the top). So what you need to do to have your ListView updated is: 1. Either execute  arrayAdapter.remove(itemToRemove); // if you want to delete item from the list or arrayAdapter.add(itemToAdd); // if you want to add an item to the list or 2. Execute arrayAdapter.clear(); // get rid of all elements arrayAdapter.addAdd(listOfItems); // add them back to the list Both work just fine.

How to join conference calls on Android

Since I am working for a global company for last few years, I spend quite a lot of time on conference calls. Still, joining conference calls especially if you're on a move isn't easy - I always had challenges when trying to memorize participant codes (again - especially while driving :)). But then - when you think about it, we have all the required information in the Android calendar, so it's only a matter of handling it properly. So here it is - Conference Call Dialer . I hope it will make your life easier (at least when it comes to joining conference calls :)) Additional information about the Conference Call Dialer : Functionality: - Retrieve information about meetings from the calendar - Dial into conference calls with conf code from the invitation - Manage and use multiple gateways (e.g. of your company and of your customers) - Review the invitations where conf code could be retrieved - A widgets for the home screen - Convenient "My conference call...

PreviewImage not showing up in widget list on android?

Few things to keep in mind when you're trying to set a preview image for your android widget: Set the android:icon attribute on the corresponding receiver in your AndroidManifest.xml to the same drawable as the one mentioned in the android:previewImag e attribute of your widget.xml file. Don't use too big (when it comes to resolution) preview images, as android anyway will scale them up. As a rule of thumb I've noticed that I have to scale down preview images (from their original size after doing screenshot in ddms) to 75% for small widgets (taking 1 row) and approx 50% for full screen widgets. Otherwise you'll get error saying that the widget dragging couldn't be initialized. Most widgets anyway don't use preview, so don't worry about it too much :)

Easy swipe gesture handling on android

Recently I wanted to implement swipe functionality for activity in my android app but couldn't find a nice and simple example that would explain what do you really need to do. There are multiple sites that are bloated with code, but somehow I couldn't believe that to implement such a simple (and kinda basic if you think about it) functionality you need to write tens of lines of code. So if you're like me, looking for a simple and elegant solution for swipe gesture handling, here it is... First some theory - to implement swipe you will need to: 1. Create a GestureDetector 2. Create an OnGestureListener by extending GestureDetector.SimpleOnGestureListener 3. Implement onFling method in listener created in step 2 4. Handle the onTouchEvent in your activity Now let's jump to the code: import android.app.Activity; import android.os.Bundle; import android.view.GestureDetector; import android.view.MotionEvent; public class MySwipeSupportedActivity extends ...

Free online learning

Recently I saw a great TED talk about high quality free online courses offered by some of the most famous universities around the world (like MIT, Stanford) , "Daphne Koller: What we're learning from online education", available at   http://www.ted.com/talks/daphne_koller_what_we_re_learning_from_online_education.html The whole talk is really great, with some tips how to improve the effectiveness of online trainings. I did also some googling and found following websites that offer free learning courses (or index them) from various disciplines. Really worth checking and signing up: https://www.coursera.org/  - site mentioned by Daphne Koller. 124 courses offered. https://www.edx.org/  - MIT, Berkley, Harvard - some of the courses start in September and beginning of October http://www.schneider-electric.com.au/sites/australia/en/company/data-center-free-online-training-courses.page  - Data Center University offers a lot of computer-related courses http://ocw....

Eclipse + EGit - "The authenticity of host ... can't be established" challenge

Recently while writing new Android code I decided that it's the highest time to have a Git repository not only on my hard drive, but also safe in the Internet. After quick search and finding out that I have accounts at almost every popular service that provides Git hosting, I figured out that one that covers everything I need (wiki, bug tracking, code hosting, forums) is the good old sourceforge. I used it also with no problems few months ago on another mobile project, so I was hoping that pushing code there will be a piece of cake. But then when I tried to do it (after configuring the project on the sourceforge site), I got very interesting error: ssh://USER@git.code.sf.net:22: org.eclipse.jgit.transport.CredentialItem$YesNoType:The authenticity of host 'git.code.sf.net' can't be established. RSA key fingerprint is 86:7b:1b:12:85:35:8a:b7:98:b6:d2:97:5e:96:58:1d. Are you sure you want to continue connecting? In theory it's nothing bad, you press the "Y...

Force.com REST API getting token with curl

Force REST API usage with curl is really well documented, there are at least two official HowTO's, but both of the assume that you will get your OATH token with Java. Below I've described steps required to get the token and verify your token with curl. 1. Retrieve token curl -v -k https://DOMAIN.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=CONSUMER_KEY" -d "client_secret=CONSUMER_SECRET" -d "username=USERNAME" -d "password=USER_PASSWORDSECURITY_TOKEN" where: DOMAIN - is your salesforce domain (e.g. na9) CONSUMER_KEY, CONSUMER_SECRET - as taken from App Setup -> Develop -> Remote Access USERNAME, USER_PASSWORD, SECURITY_TOKEN - properties for the user that you want to connect with. Note that USER_PASSWORD and SECURITY_TOKEN are concatenated. Note that I used -k parameter in curl which results in the SSL certificate validation skipped (otherwise you need to add it or t...