author | marseille@KungFuh |
Fri, 03 Apr 2009 00:49:23 +0200 | |
changeset 52 | 375194dc3bca |
parent 47 | 743ccc7961dc |
child 59 | ff98ffba21f4 |
permissions | -rw-r--r-- |
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 | 6 |
import java.util.LinkedList; |
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 | 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 | 19 |
import android.os.Message; |
20 |
||
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 | 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 | 33 |
private List<Message> mQueue = new LinkedList<Message>(); |
47 | 34 |
private boolean mIsConnected; |
52 | 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 | 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 | 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 | 74 |
intent.setComponent(new ComponentName("com.beem.project.beem", |
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 | 77 |
mApplicationContext |
78 |
.bindService(intent, mServConn, BIND_AUTO_CREATE); |
|
47 | 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 | 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 | 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 | 95 |
synchronized (mQueue) { |
96 |
for (Message msg : mQueue) { |
|
97 |
msg.sendToTarget(); |
|
98 |
} |
|
99 |
mQueue.clear(); |
|
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 | 105 |
if (mIsConnected) { |
106 |
Intent intent = new Intent(); |
|
107 |
intent.setComponent(new ComponentName("com.beem.project.beem", |
|
108 |
"com.beem.project.beem.BeemService")); |
|
109 |
mApplicationContext.unbindService(mServConn); |
|
110 |
mApplicationContext.stopService(intent); |
|
111 |
mIsConnected = false; |
|
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 | 118 |
|
46 | 119 |
public void callWhenServiceConnected(Handler target, Runnable callback) { |
120 |
Message msg = Message.obtain(target, callback); |
|
47 | 121 |
if (!mIsConnected) { |
46 | 122 |
msg.sendToTarget(); |
123 |
} else { |
|
124 |
startBeemService(); |
|
125 |
synchronized (mQueue) { |
|
126 |
mQueue.add(msg); |
|
127 |
} |
|
128 |
} |
|
129 |
} |
|
52 | 130 |
|
131 |
/** |
|
132 |
* Indique si on est connecte au service. |
|
133 |
*/ |
|
134 |
public boolean isConnected() { |
|
135 |
return mIsConnected; |
|
136 |
} |
|
137 |
||
45
ae035477b6aa
Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
138 |
} |