MD5 function

cara pakai

String md5 = MD5.encode("data yang di Encode");

Fungsinya, simpan dengan nama MD5.java

package com.nux.app.util;

import net.rim.device.api.crypto.MD5Digest;

public class MD5 {
	public static String encode(String data) {
		byte[] bytes = data.getBytes();
	    MD5Digest digest = new MD5Digest();
	    digest.update(bytes, 0, bytes.length);
	    int length = digest.getDigestLength();
	    byte[] md5 = new byte[length];
	    digest.getDigest(md5, 0, true);
	    return byteArrayToHexString(md5);
	}
	
	private static String byteArrayToHexString(byte in[])
	    {
		byte ch = 0x00;
		int i = 0;
		if (in == null || in.length <= 0)
	       	{
			return null;
		}
	        String pseudo[] = {"0", "1", "2","3", "4", "5", "6", "7", "8","9", "A", "B", "C", "D", "E", "F"};
	    	StringBuffer out_str_buf = new StringBuffer(in.length * 2);
	    	while (i < in.length)
		{
	        	ch = (byte) (in[i] & 0xF0);
	        	ch = (byte) (ch >>> 4); 
	        	ch = (byte) (ch & 0x0F);
	        	out_str_buf.append(pseudo[ (int) ch]);
	        	ch = (byte) (in[i] & 0x0F);
	        	out_str_buf.append(pseudo[ (int) ch]);
	        	i++;
	    	}
	    	String rslt = new String(out_str_buf);
	    	return rslt;
	    }
}

Bagaimana menambahkan icon notifikasi kecil di Blackberry

Sudah beberapa minggu ini blog developer blackberry Indonesia ini agak sepi. Saya nggak tahu kenapa, mungkin pada sibuk sama proyek atau sibuk ngabisin duit beli baju lebaran😛

Baik, kali ini saya akan share bagaimana cara menambahkan icon notifikasi kecil di home screen Blackberry. Ini sebenarnya juga sudah saya post di blog saya tapi gak ada salahnya saya share di sini. Secara mungkin lebih banyak yang berkunjung ke sini.

Inti dalam code snippet kali ini adalah:

  1. Bagaimana menambahkan icon notifikasi
  2. Bagaimana menghapusnya lagi

Hasil:

Menambahkan icon notifikasi

try {
            ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();            

            EncodedImage notify = EncodedImage.getEncodedImageResource("img/xxx-notify.png");
            ApplicationIcon icon = new ApplicationIcon(CustomBitmapUtil.scaleImageToWidth(notify, 24));           

            ApplicationIndicator indicator = reg.register(icon, false, true);
        } catch(Throwable e) {
        	System.out.println("Gagal kasih notifikasi");
        	System.out.println(e.getMessage());
        }

Menghapus icon notifikasi

try {
            ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
            reg.unregister();
        } catch(Throwable e) {
        	System.out.println("Gagal kasih notifikasi");
        	System.out.println(e.getMessage());
        }

Batasan: minimal digunakan untuk OS 4.6.

Selamat mencoba.

Getting OS, Tipe and PIN Blackberry

import this

import net.rim.device.api.system.DeviceInfo;

use this code:

//Get OS Version
String sw = DeviceInfo.getSoftwareVersion();
//Get Tipe Blackberry
String dvc= DeviceInfo.getDeviceName();
//get Pin Blackberry
String pin = Integer.toHexString(DeviceInfo.getDeviceId());

Auto Check Connection for Blackberry

script ini akan menentukan jalur secara otomatis dalam melakukan koneksi http/tcp.
apakah melalui Wifi, MDS/BES dan directTCP.

simpan dengan nama ConnString.java

import net.rim.device.api.system.CoverageInfo;
import net.rim.device.api.system.DeviceInfo;
import net.rim.device.api.system.WLANInfo;

public final class ConnString {
    public static String getConnectionString()
    {
        String st = "";
        try{
	    //The Device is a simultaor --> TCP
	        if (DeviceInfo.isSimulator()){
	            return "";
        	}else if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) {
	            st =  ";interface=wifi";
	        } else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS){
	            st = ";deviceside=false";// use the clients blackberry enterprise server
	        }else{
	            st = ";deviceside=true";// let the phone do the work if it can
	        }
        }catch(Exception e){
            System.out.println(e.toString());
        }
	            return st + ";ConnectionTimeout=45000";
    }

}

gunakan tiap akan melakukan koneksi pada url
contoh:

HttpConnection connection = null;
connection = (HttpConnection) Connector.open("http://ibnux.netapa?ini=itu"+
ConnString.getConnectionString(), Connector.READ, true);

Using Log at blackberry

imports:

import net.rim.device.api.system.EventLogger;

Variable:

/**
* your package ex:com.nux.app.log
* select then right click then choose Convert string to long
* will be like this : 0x36c3d2a18dcfa4e3L this is your Log ID
*/
private static long ID = 0x36c3d2a18dcfa4e3L;
private static String even="";

register your app to use LOG

EventLogger.register(ID,"Name of your APP", EventLogger.VIEWER_STRING);

then log what you need:

even = "Use WIFI";EventLogger.logEvent( ID, even.getBytes() );

or use new line:

even = "Use BIS-B";
EventLogger.logEvent( ID, even.getBytes() );//add to log

Using LED

import:

import net.rim.device.api.system.LED;
import net.rim.device.api.ui.Color;

code to start LED:

LED.setColorConfiguration(200, 2000, Color.GREEN);
LED.setState(LED.STATE_BLINKING);

200 adalah berapa lama Led menyala
2000 berapa lama led mati

code to stop LED:

LED.setState( LED.STATE_OFF );

Fungsi Split untuk Java

fungsi ini akan bantu anda untuk split String.

kode fungsinya

            public synchronized String[] split(String original, String separator) {
                Vector nodes = new Vector();

                // Parse nodes into vector
                int index = original.indexOf(separator);
                while(index>=0) {
                    nodes.addElement( original.substring(0, index) );
                    original = original.substring(index+separator.length());
                    index = original.indexOf(separator);
                }
                // Get the last node
                nodes.addElement( original );

                // Create splitted string array
                String[] result = new String[ nodes.size() ];
                if( nodes.size()>0 ) {
                    for(int loop=0; loop<nodes .size(); loop++)
                    result[loop] = (String)nodes.elementAt(loop);
                }
                return result;
            }

Saatnya bagi komunitas untuk membangun Blackberry UI framework

Diakui atau tidak, permasalahan tersulit yang dialami programmer Blackberry profesional (maksud saya programmer Blackberry yang bekerja full time coding Blackberry termasuk freelancer, bukan part time) adalah membangun user interface. Tidak ada maksud untuk under-estimate terhadap programmer Blackberry part time, awalnya saya juga part timer.

Pada mulanya saya sendiri sulit mempercayai ketika saya bertanya kepada seorang rekan yang sudah lebih dulu bekerja di perusahaan yang membangun software Blackberry (sebutan ini akibat statement dari pemilik perusahaan yang menyatakan bahwa XXX bukan software house). Pertanyaan saya sederhana saja, “Mas, apa sih masalah tersulit yang mas alami ketika programming Blackberry?”. Jawabannya adalah, “User Interface”. Pada saat itu saya mengharapkan jawaban mengatur multi threading, atau socket programming atau hal-hal yang sulit lainnya. Ternyata jawabannya di luar dugaan, User Interface. Pada waktu itu, bagi saya masalah terbesar adalah bagaimana agar saya bisa konek dengan BIS (karena saya tidak tahu connection suffix yang harus digunakan, :(( ).

Rupanya benar, begitu saya join ke perusahaan tersebut, saya disodori rancangan user interface sebuah aplikasi yang menurut saya gila. Desain ini dibuat oleh desainer profesional (bukan programmer ataupun desain dari client). Jauh dari komponen standar yang dipakai. Meskipun sebelumnya saya sudah relatif lama berkecimpung di J2ME, termasuk Blackberry development, tetap saja rancangan itu terlihat sulit diwujudkan. Sebelumnya, ketika mengerjakan proyek part time saya, saya sudah cukup banyak menggunakan teknik-teknik untuk menggambar background dan rounded border sederhana dengan menggunakan drawImage(), drawBitmap(), fillRoundRect(), dan drawRoundRect(). Tapi rancangan yang disodorkan ke saya tersebut, benar-benar jauh berbeda. Bahkan tidak pernah menggunakan ButtonField standar.

Read more of this post

Custom Semi Transparent Menu

Teman-teman, sore ini saya pengen sharing trik untuk bikin custom menu. Ada dua trik utama yang akan saya ceritakan.

  1. Membuat custom menu
  2. Membuat pop-up screen yang semi transparan

Nanti, hasilnya kira-kira begini teman-teman:

Untuk membuat menu yang seperti ini, yang saya lakukan sebelumnya adalah membuat 2 class penunjang dulu. Sebenarnya class ini sudah sering saya pakai untuk kerjaan-kerjaan sebelumnya.

Class pertama adalah ImageUtil.java yang dipake untuk men-resize gambar-gambar yang saya pake. Class kedua adalah ImageButton.java. ImageButton dipake buat bikin tombol dengan 2 image yaitu image ketika tombol tidak di-focus dan image ketika tombol di-focus.

Selain kedua class itu, saya menyiapkan 3 icon downloadan yang akan saya pake buat tombol-nya. Icon yang saya pake adalah facebook, yahoo dan wordpress. Ketiga icon tersebut kemudian saya buat versi grey-nya, untuk dipakai sebagai image un-focus.

Ya, Anda sih bisa pakai image apa saja.

Read more of this post

Indonesia Blackberry Developer Blog Launcher

Untuk Akses cepat ke Indonesia Blackberry Developer Blog, kini telah Hadir Blog Launcher.

Untuk Installasi via Blackberry Browser (OTA) klik disini.

Untuk Installasi via Desktop Manager klik dsini.

Keuntungan menggunakan Launcher adalah :

  • Tanpa mengetikkan alamat domain dimana kita ingin kunjungi
  • Hemat waktu sama dengan fasilitas bookmark di web browser PC anda.