Wednesday, June 25, 2014

SLT Usage Meter goes Android!

Get the Android App here:
https://play.google.com/store/apps/details?id=lk.elnino.sltusagemeter

Finally I had time to spare on this pet project, which the idea was originally coined by one of my colleagues who writes cool Android apps. Initially I thought this wouldn't be any use to have as a mobile app but then again when I thought that it could be useful as a widget on the home screen, I got motivated to try. Simply because I have not written any widgets for Android before :)

I got to say that this ain't the only app on the play store which can check your SLT broadband usage. I've seen a couple of others which basically does the same thing. So why I wrote yet another one? Because none of them had a home screen widget or notifies you when the limit is reached.

Let's have a look at the party piece.

This widget is shown at the bottom. I just cropped the home screen. The green and yellow bars show the percentage used. When you touch the widget, the numbers change to either show the percentages, used GBs or unused GBs. No surprise there, it works just like the browser widgets.

When you touch the icon, the usage is updated. Anyhow the app updates the usage automatically in the background, but if you want you can turn off that feature.

When you reach the end of your monthly limit, you will get notified whether you had the widget or not. Then again that'll also work if the auto updates are enabled.





The main app looks like this. Nothing to brag though.

 

So there you have it. Try it out and let me know how it is.
As always, it's free and not adware.

Enjoy!


Monday, February 3, 2014

How to show the Google Map in Android App

Well here I am specifically talking about getting it done with Android Studio and with Maps API v2.

First of all you need the Google Play services downloaded using the SDK Manger.


Then add the Google Play services version to your app's manifest file.
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
Get your Google Maps API key.

  • Go here: https://code.google.com/apis/console/?noredirect and click 'Cloud Console' link.
  • Register a project there and turn on your Google Maps Android App v2 Service
  • Create a new key under APIs & auth -> Credentials
  • Add the key information to the manifest. See below.
<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="AasdJHJHKSDHfcFJLbZhndBC_fdsd1KEHk"/>
Add permissions in the manifest to access Internet.
<uses-permission android:name="android.permission.INTERNET"/>
Add a map fragment to your layout. Note that I have used SupportMapFragment. That comes with Android Support Repository.
<fragment 
          android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          class="com.google.android.gms.maps.SupportMapFragment"/>
Check device compatibility. If Google Play Services are not up-to-date on the phone, this will let the user to update then and there.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
int mapResult = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (mapResult != ConnectionResult.SUCCESS) {
    GooglePlayServicesUtil.getErrorDialog(mapResult, this, 0).show();
} else {
    mapFragment.getMap().animateCamera(CameraUpdateFactory.zoomIn());
}
That's about it. Now the map should be visible on your app. If not, patiently go through the above check-list again and see what you have missed :)

Monday, January 6, 2014

All new SLT Usage Meter is here!

The SLT has revamped their website and not surprisingly has fixed the security hole too, which enabled us to grab the usage data only by giving the user id. Now users are required to create a new profile here in order to view their usage.

Sadly this made my 'SLT Usage Meter' browser add-ons obsolete. Well technically for few days, until I found some spare time to figure out the new thing. Hey SLT, we are still keeping up :)

I have updated add-ons for Chrome and Firefox both, which now work fine with the new portal login credentials. Now you need to enter the password as well so the gadjet's wow factor is gone, but that's the way it is...

I changed the icon and the layout of the gadjet too. Special thanks to GK, who supplied me with a sample icon and encouraged me to make it more eye candy. Please feel free to comment about what you think of the new look. Thank you.

Download links:
Chrome: https://chrome.google.com/webstore/detail/slt-usage-meter/hofjanlkemfjdabokampgoehhfifbbjc
Firefox: https://addons.mozilla.org/en-US/firefox/addon/slt-usage-meter

Sunday, December 29, 2013

Connecting your Android phone to your Windows WiFi HotSpot

Now this actually something I thought would be a piece of cake, until the day I actually wanted to do it.

This is how I tried:

I went to 'Network and Sharing Center' and selected 'Set up a Connection or Network' and clicked on 'Set up a wireless ad hoc (computer-to-computer) network'.


Then gave the following details.



Windows said my network is ready to use but it was not showing up on my Android phone.

Googled a bit, and got the bad news. Android does not support WiFi ad hoc networks! Well at least if your phone is not rooted. In my case I was trying with a Nexus running Vanilla Android. Doh!

Again, Google to the rescue. I found out that we can use 'netsh' administrative commands to host a wireless network in the access point mode instead of the ad hoc mode.

So on an administrative command prompt, you type:
netsh wlan set hostednetwork mode=allow ssid=MyAdHocNetwork
key=12345678



Then you start it:
netsh wlan start hostednetwork



Now you will see 'MyAdHocNetwork' in your Android phone's WiFi networks list!

PS: Later I found out this can be done with ease using 'Virtual Router Plus', but it doesn't hurt to get a little grease under the nails once in a while :)

How to refer an external library (.jar) in Android Studio

I had quite a bit of trouble doing this, hence thought of blogging it.

First you need to download the required .jar file. In my case it is 'commons-codec-1.9.jar'.

Then create a folder named 'lib' in your project folder and copy the .jar file.

From Android Studio, right click the lib file and select 'Add as Library...'.



Select your project and confirm.


Open 'build.gradle' of your project and add line 'the following line under 'dependencies':
compile files('libs/commons-codec-1.9.jar')



Add code to use the referenced library.



Rebuild your project.



That's it! :)

Sunday, December 22, 2013

Android Studio New Project Wizard Weird Blank Error Resolution

Recently I bought a new laptop and had to install all my software from scratch. Everything worked fine but I just couldn't get the Android Studio working. Whenever I tried to complete the New Project Wizard, it backed off throwing the following blank error message.


I tried re-installing the Studio, JDK, trying various setup configurations, typical restarts and whatnot but this was not going away. Surprisingly the samples which comes with SDK seem to load fine. Therefore I tried to copy one sample project folder to my working folder and thought of changing everything to suit my new project. Kaboom! The error came back!!!

Then only I checked whether my working folder path is to blame...


Zoomed...


Damn it! That single quotation mark is screwing things up all this time. Shame on you Android Studio. It's almost 2014 and still you cannot sanitize user inputs? So I changed my working directory and all went fine just like the old days :) Hope this post will help someone someday who is splitting hair across this stupid error. Peace out!


Saturday, September 21, 2013

How to run AutoCAD R14 in 64bit Windows 7

If you hate reading all the step-by-step crap about how I did it, just scroll to the bottom. The summary is there :)

 


First of all a bit of history on why I actually want to do this. My father is a surveyor. While I was doing my bachelors, I wrote a program to automate block plan drawing using AutoLISP. This was running on top of AutoCAD R14, and since then he was using it to do all his work. This was installed on Windows XP and was running on a desktop PC. Recently I upgraded my laptop and I wanted to give my old one to him and it was running a genuine Windows 7. Then I faced this problem on running AutoCAD R14 on 64bit Windows 7...

Before we start, I have to confess that I actually had a copy of the files which I got from the installed directory in Windows XP. If you want to do a fresh installation, then I am not sure how you can go about running the AutoCAD setup on Windows 7. Most probably you will have to set up a virtual box running Windows XP, install AutoCAD on it and then get the installed files copied to somewhere else. (The reason being the AutoCAD R14 setup does not run on Windows XP compatibility mode)

Ok, so let's assume you have a complete copy of AutoCAD folder from a Windows XP box. If you run the AutoCAD.exe directly in Windows 7, you get a message saying 'heidi3.dll' is not found. So first thing I did was to download it and copy it to the AutoCAD folder. You can download it here.

Now when you run AutoCAD, a different type of error message starts to appear. It's thrown from 'SmartHeap Library' and reveals nothing other than its enum value :D 'MEM_BAD_POINTER'. A bit of googling revealed that it is due to the 'sh31w32.dll' which is probably out of date when dealing with a 64bit OS. So I downloaded a more recent copy and replaced which was inside the AutoCAD directory. You can get it here.

And voila! AutoCAD splash screen came up! Hold on... that was just for a second. The main interface also got loaded and greeted me with another error message. I started loving it! This time it was more specific, just like the first one. It said now it cannot find 'gdifont3.hdi'. No worries, Internet to the rescue. So I downloaded the god damn file and copied it just like before. Get it here.

I was expecting a series of file missing error messages, but to my surprise, AutoCAD loaded fine and seemed to work just like it was freshly installed on Windows 7! Even my lisp program was running perfectly. So there you have it. AutoCAD R14 running on 64bit Windows 7 without skipping a beat!

Cheers!

Ok so here's what you need to do in a nutshell:
  1. You need a copy of working AutoCAD R14 files from another computer.
  2. Copy the following files into that folder. (Replace whatever necessary)
  3. Done!