src/com/beem/project/beem/BeemApplication.java
author marseille@KungFuh
Fri, 03 Apr 2009 00:49:23 +0200
changeset 52 375194dc3bca
parent 47 743ccc7961dc
child 59 ff98ffba21f4
permissions -rw-r--r--
Gros menage dans les views. -Suppression de la vu beem avec le logo qui servait a rien ... les infos sont maintenant dans la classe contactlist. -Fix de la classe contactlist.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     1
/**
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     2
 * 
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     3
 */
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     4
package com.beem.project.beem;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     5
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
     6
import java.util.LinkedList;
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
     7
import java.util.List;
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     8
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     9
import android.app.Activity;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    10
import android.app.Application;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    11
import android.content.ComponentName;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    12
import android.content.Context;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    13
import android.content.Intent;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    14
import android.content.ServiceConnection;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    15
import android.content.res.Configuration;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    16
import android.content.res.Resources;
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    17
import android.os.Handler;
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
import android.os.IBinder;
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    19
import android.os.Message;
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    20
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    21
import com.beem.project.beem.service.aidl.IXMPPFacade;
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    22
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    23
/**
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    24
 * @author darisk
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    25
 */
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    26
public class BeemApplication extends Application {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    27
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    28
    private IXMPPFacade mFacade;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    29
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    30
    private Context mApplicationContext;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    31
    private Resources mPrivateResources;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    32
    private static BeemApplication mBeemApp;
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    33
    private List<Message> mQueue = new LinkedList<Message>();
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 46
diff changeset
    34
    private boolean mIsConnected;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    35
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
    public static BeemApplication getApplication(Activity activity) {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    37
	if (mBeemApp == null) {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    38
	    mBeemApp = new BeemApplication();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    39
	    mBeemApp.mApplicationContext = activity.getApplication();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    40
	    mBeemApp.mPrivateResources = activity.getResources();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    41
	    mBeemApp.onCreate();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    42
	}
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    43
	return mBeemApp;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
    }
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    45
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    46
    @Override
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    47
    public void onConfigurationChanged(Configuration newConfig) {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    48
	// TODO Auto-generated method stub
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    49
	super.onConfigurationChanged(newConfig);
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    50
    }
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    51
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    52
    @Override
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    53
    public void onCreate() {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    54
	// TODO Auto-generated method stub
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    55
	super.onCreate();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    56
	mFacade = null;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    57
    }
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    58
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    59
    @Override
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    60
    public void onLowMemory() {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    61
	// TODO Auto-generated method stub
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    62
	super.onLowMemory();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    63
    }
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    64
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    65
    @Override
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    66
    public void onTerminate() {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    67
	// TODO Auto-generated method stub
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    68
	super.onTerminate();
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    69
    }
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    70
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    71
    public synchronized void startBeemService() {
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 46
diff changeset
    72
	if (!mIsConnected) {
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    73
	    Intent intent = new Intent();
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    74
	    intent.setComponent(new ComponentName("com.beem.project.beem",
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    75
		    "com.beem.project.beem.BeemService"));
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    76
	    mApplicationContext.startService(intent);
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    77
	    mApplicationContext
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
    78
		    .bindService(intent, mServConn, BIND_AUTO_CREATE);
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 46
diff changeset
    79
	    mIsConnected = true;
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    80
	}
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    81
    }
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    82
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    83
    private ServiceConnection mServConn = new ServiceConnection() {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    84
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    85
	@Override
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    86
	public void onServiceDisconnected(ComponentName name) {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    87
	    mFacade = null;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 46
diff changeset
    88
	    mIsConnected = false;
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    89
	}
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    90
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    91
	@Override
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    92
	public void onServiceConnected(ComponentName name, IBinder service) {
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    93
	    // TODO Auto-generated method stub
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    94
	    mFacade = IXMPPFacade.Stub.asInterface(service);
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    95
	    synchronized (mQueue) {
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    96
		for (Message msg : mQueue) {
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    97
		    msg.sendToTarget();
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    98
		}
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
    99
		mQueue.clear();
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   100
	    }
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   101
	}
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   102
    };
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   103
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   104
    public synchronized void stopBeemService() {
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   105
	if (mIsConnected) {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   106
	    Intent intent = new Intent();
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   107
	    intent.setComponent(new ComponentName("com.beem.project.beem",
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   108
		    "com.beem.project.beem.BeemService"));
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   109
	    mApplicationContext.unbindService(mServConn);
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   110
	    mApplicationContext.stopService(intent);
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   111
	    mIsConnected = false;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   112
	}
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   113
    }
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   114
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   115
    public IXMPPFacade getXmppFacade() {
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   116
	return mFacade;
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   117
    }
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   118
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   119
    public void callWhenServiceConnected(Handler target, Runnable callback) {
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   120
	Message msg = Message.obtain(target, callback);
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 46
diff changeset
   121
	if (!mIsConnected) {
46
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   122
	    msg.sendToTarget();
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   123
	} else {
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   124
	    startBeemService();
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   125
	    synchronized (mQueue) {
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   126
		mQueue.add(msg);
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   127
	    }
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   128
	}
d5a36d820645 Amelioration de l'application
Da Risk <darisk972@gmail.com>
parents: 45
diff changeset
   129
    }
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   130
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   131
    /**
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   132
     * Indique si on est connecte au service.
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   133
     */
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   134
    public boolean isConnected() {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   135
	return mIsConnected;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   136
    }
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 47
diff changeset
   137
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   138
}