root / src / com / rackspace / cloud / android / PithosGroupsActivity.java @ 6ba04c48
History | View | Annotate | Download (10.4 kB)
1 | 856ad13d | koutsoub | package com.rackspace.cloud.android; |
---|---|---|---|
2 | 856ad13d | koutsoub | |
3 | 732d9c2c | koutsoub | import java.util.ArrayList; |
4 | 732d9c2c | koutsoub | import java.util.HashMap; |
5 | 732d9c2c | koutsoub | import java.util.Map; |
6 | 732d9c2c | koutsoub | |
7 | ad4d3f12 | koutsoub | import org.apache.http.HttpEntity; |
8 | ad4d3f12 | koutsoub | import org.apache.http.HttpResponse; |
9 | ad4d3f12 | koutsoub | |
10 | 856ad13d | koutsoub | import android.app.Activity; |
11 | 732d9c2c | koutsoub | import android.app.AlertDialog; |
12 | 98604824 | koutsoub | import android.app.ExpandableListActivity; |
13 | 856ad13d | koutsoub | import android.content.Context; |
14 | 732d9c2c | koutsoub | import android.content.DialogInterface; |
15 | 732d9c2c | koutsoub | import android.graphics.Color; |
16 | ad4d3f12 | koutsoub | import android.os.AsyncTask; |
17 | 856ad13d | koutsoub | import android.os.Build; |
18 | 856ad13d | koutsoub | import android.os.Bundle; |
19 | 732d9c2c | koutsoub | import android.util.Log; |
20 | 732d9c2c | koutsoub | import android.view.ContextMenu; |
21 | 732d9c2c | koutsoub | import android.view.ContextMenu.ContextMenuInfo; |
22 | 732d9c2c | koutsoub | import android.view.Menu; |
23 | 732d9c2c | koutsoub | import android.view.MenuInflater; |
24 | 732d9c2c | koutsoub | import android.view.MenuItem; |
25 | 732d9c2c | koutsoub | import android.view.View; |
26 | 732d9c2c | koutsoub | import android.widget.AutoCompleteTextView; |
27 | 732d9c2c | koutsoub | import android.widget.EditText; |
28 | 98604824 | koutsoub | import android.widget.ExpandableListView; |
29 | 732d9c2c | koutsoub | import android.widget.ExpandableListView.ExpandableListContextMenuInfo; |
30 | 856ad13d | koutsoub | |
31 | 856ad13d | koutsoub | import com.google.android.apps.analytics.GoogleAnalyticsTracker; |
32 | ad4d3f12 | koutsoub | |
33 | 856ad13d | koutsoub | import com.rackspace.cloud.android.widget.GroupsListView; |
34 | 856ad13d | koutsoub | import com.rackspace.cloud.files.api.client.Container; |
35 | 732d9c2c | koutsoub | import com.rackspace.cloud.files.api.client.ContainerManager; |
36 | 732d9c2c | koutsoub | import com.rackspace.cloud.files.api.client.ContainerObjectManager; |
37 | 732d9c2c | koutsoub | import com.rackspace.cloud.files.api.client.GroupResource; |
38 | 732d9c2c | koutsoub | import com.rackspace.cloud.servers.api.client.Account; |
39 | 732d9c2c | koutsoub | import com.rackspace.cloud.servers.api.client.CloudServersException; |
40 | 732d9c2c | koutsoub | import com.rackspace.cloud.servers.api.client.http.HttpBundle; |
41 | 856ad13d | koutsoub | |
42 | ad4d3f12 | koutsoub | public class PithosGroupsActivity extends CloudActivity { |
43 | 856ad13d | koutsoub | private Context context; |
44 | 856ad13d | koutsoub | private boolean loading; |
45 | 856ad13d | koutsoub | private GoogleAnalyticsTracker tracker;
|
46 | ad4d3f12 | koutsoub | |
47 | 856ad13d | koutsoub | @Override
|
48 | 856ad13d | koutsoub | public void onCreate(Bundle savedInstanceState) { |
49 | 856ad13d | koutsoub | super.onCreate(savedInstanceState);
|
50 | 856ad13d | koutsoub | startTracker(); |
51 | 856ad13d | koutsoub | trackPageView(GoogleAnalytics.PAGE_FOLDER); |
52 | 856ad13d | koutsoub | setContentView(R.layout.groups); |
53 | 856ad13d | koutsoub | GroupsListView groupsList = ((GroupsListView) findViewById(R.id.groupsListView)); |
54 | 732d9c2c | koutsoub | registerForContextMenu(groupsList); |
55 | 856ad13d | koutsoub | /*
|
56 | 856ad13d | koutsoub | * groupsList.setOnGroupExpandListener(new OnGroupExpandListener() {
|
57 | 856ad13d | koutsoub | *
|
58 | 856ad13d | koutsoub | * @Override public void onGroupExpand(int groupPosition) {
|
59 | 856ad13d | koutsoub | * GroupResource g = (GroupResource)
|
60 | 856ad13d | koutsoub | * groupsList.getListdapter().getGroup(groupPosition); if(g!=null){
|
61 | 856ad13d | koutsoub | * getGroupUserTask(groupPosition).execute(g.getUri()); }
|
62 | 856ad13d | koutsoub | *
|
63 | 856ad13d | koutsoub | * } });
|
64 | 856ad13d | koutsoub | */
|
65 | 856ad13d | koutsoub | } |
66 | ad4d3f12 | koutsoub | |
67 | 732d9c2c | koutsoub | @Override
|
68 | 732d9c2c | koutsoub | public boolean onCreateOptionsMenu(Menu menu) { |
69 | 732d9c2c | koutsoub | super.onCreateOptionsMenu(menu);
|
70 | 732d9c2c | koutsoub | MenuInflater inflater = getMenuInflater(); |
71 | 732d9c2c | koutsoub | inflater.inflate(R.menu.groups_menu, menu); |
72 | 732d9c2c | koutsoub | return true; |
73 | 732d9c2c | koutsoub | } |
74 | 732d9c2c | koutsoub | |
75 | 732d9c2c | koutsoub | @Override
|
76 | 732d9c2c | koutsoub | /*
|
77 | ad4d3f12 | koutsoub | * option performed for delete depends on if you are at the top of a
|
78 | ad4d3f12 | koutsoub | * container or in a folder
|
79 | 732d9c2c | koutsoub | */
|
80 | 732d9c2c | koutsoub | public boolean onOptionsItemSelected(MenuItem item) { |
81 | 732d9c2c | koutsoub | switch (item.getItemId()) {
|
82 | 732d9c2c | koutsoub | case R.id.add_group:
|
83 | 732d9c2c | koutsoub | showNew(); |
84 | 732d9c2c | koutsoub | return true; |
85 | 732d9c2c | koutsoub | default:
|
86 | 732d9c2c | koutsoub | break;
|
87 | ad4d3f12 | koutsoub | |
88 | 732d9c2c | koutsoub | } |
89 | 732d9c2c | koutsoub | return false; |
90 | 732d9c2c | koutsoub | } |
91 | ad4d3f12 | koutsoub | |
92 | 732d9c2c | koutsoub | @Override
|
93 | 732d9c2c | koutsoub | public void onCreateContextMenu(ContextMenu menu, View v, |
94 | 732d9c2c | koutsoub | ContextMenuInfo menuInfo) { |
95 | 732d9c2c | koutsoub | super.onCreateContextMenu(menu, v, menuInfo);
|
96 | ad4d3f12 | koutsoub | ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) menuInfo; |
97 | ad4d3f12 | koutsoub | int type = ExpandableListView
|
98 | ad4d3f12 | koutsoub | .getPackedPositionType(info.packedPosition); |
99 | ad4d3f12 | koutsoub | if (type == 1) |
100 | 732d9c2c | koutsoub | menu.add(1, 2, 3, "Delete"); |
101 | ad4d3f12 | koutsoub | else {
|
102 | 98604824 | koutsoub | menu.add(1, 1, 2, "Add User"); |
103 | 732d9c2c | koutsoub | menu.add(1, 2, 3, "Delete"); |
104 | 732d9c2c | koutsoub | } |
105 | 732d9c2c | koutsoub | } |
106 | ad4d3f12 | koutsoub | |
107 | 732d9c2c | koutsoub | @Override
|
108 | 732d9c2c | koutsoub | public boolean onContextItemSelected(MenuItem item) { |
109 | 732d9c2c | koutsoub | final ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item
|
110 | 732d9c2c | koutsoub | .getMenuInfo(); |
111 | 98604824 | koutsoub | int groupPos = 0, childPos = 0; |
112 | ad4d3f12 | koutsoub | int type = ExpandableListView
|
113 | ad4d3f12 | koutsoub | .getPackedPositionType(info.packedPosition); |
114 | 98604824 | koutsoub | final GroupResource group;
|
115 | 98604824 | koutsoub | final String user; |
116 | 98604824 | koutsoub | final GroupsListView groupsList = ((GroupsListView) findViewById(R.id.groupsListView));
|
117 | 98604824 | koutsoub | if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
|
118 | ad4d3f12 | koutsoub | groupPos = ExpandableListView |
119 | ad4d3f12 | koutsoub | .getPackedPositionGroup(info.packedPosition); |
120 | ad4d3f12 | koutsoub | childPos = ExpandableListView |
121 | ad4d3f12 | koutsoub | .getPackedPositionChild(info.packedPosition); |
122 | ad4d3f12 | koutsoub | group = (GroupResource) groupsList.getGroupsAdapter().getGroup( |
123 | ad4d3f12 | koutsoub | groupPos); |
124 | ad4d3f12 | koutsoub | user = (String) groupsList.getGroupsAdapter().getChild(groupPos,
|
125 | ad4d3f12 | koutsoub | childPos); |
126 | ad4d3f12 | koutsoub | |
127 | ad4d3f12 | koutsoub | } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { |
128 | ad4d3f12 | koutsoub | groupPos = ExpandableListView |
129 | ad4d3f12 | koutsoub | .getPackedPositionGroup(info.packedPosition); |
130 | ad4d3f12 | koutsoub | group = (GroupResource) groupsList.getGroupsAdapter().getGroup( |
131 | ad4d3f12 | koutsoub | groupPos); |
132 | ad4d3f12 | koutsoub | user = null;
|
133 | ad4d3f12 | koutsoub | } else {
|
134 | 98604824 | koutsoub | group = null;
|
135 | 98604824 | koutsoub | user = null;
|
136 | 98604824 | koutsoub | } |
137 | ad4d3f12 | koutsoub | Log.i("GROUPS", "****************************"); |
138 | ad4d3f12 | koutsoub | Log.i("GROUPS", "group:" + groupPos + " child:" + childPos); |
139 | ad4d3f12 | koutsoub | Log.i("GROUPS", "****************************"); |
140 | ad4d3f12 | koutsoub | |
141 | 732d9c2c | koutsoub | AlertDialog alertDialog = null;
|
142 | 732d9c2c | koutsoub | switch (item.getItemId()) {
|
143 | 732d9c2c | koutsoub | // case R.id.new_folder:
|
144 | 732d9c2c | koutsoub | // new
|
145 | 732d9c2c | koutsoub | // NewFolderDialog(GssClient.this,GssClient.this,(FolderResource)currentResource).show();
|
146 | 732d9c2c | koutsoub | // return true;
|
147 | 732d9c2c | koutsoub | case 2: |
148 | ad4d3f12 | koutsoub | final boolean isUser = user != null; |
149 | 732d9c2c | koutsoub | alertDialog = new AlertDialog.Builder(this).create(); |
150 | ad4d3f12 | koutsoub | if (isUser) {
|
151 | 98604824 | koutsoub | alertDialog.setTitle("Delete User");
|
152 | ad4d3f12 | koutsoub | alertDialog.setMessage("R u sure you want to delete this user?"
|
153 | ad4d3f12 | koutsoub | + user); |
154 | ad4d3f12 | koutsoub | } else {
|
155 | 98604824 | koutsoub | alertDialog.setTitle("Delete Group");
|
156 | 98604824 | koutsoub | alertDialog |
157 | ad4d3f12 | koutsoub | .setMessage("R u sure you want to delete this group and all its users?"
|
158 | ad4d3f12 | koutsoub | + group.getName()); |
159 | 98604824 | koutsoub | } |
160 | 732d9c2c | koutsoub | alertDialog.setButton("OK", new DialogInterface.OnClickListener() { |
161 | 732d9c2c | koutsoub | public void onClick(DialogInterface dialog, int which) { |
162 | ad4d3f12 | koutsoub | Map<String, String> headers = new HashMap<String, String>(); |
163 | ad4d3f12 | koutsoub | if (isUser) {
|
164 | ad4d3f12 | koutsoub | group.getUsers().remove(user); |
165 | ad4d3f12 | koutsoub | new GroupOrUserTask().execute("X-Account-Group-" + group.getName(), |
166 | ad4d3f12 | koutsoub | group.getUserString()); |
167 | ad4d3f12 | koutsoub | } else {
|
168 | ad4d3f12 | koutsoub | new GroupOrUserTask().execute("X-Account-Group-" + group.getName(), |
169 | ad4d3f12 | koutsoub | "~");
|
170 | 732d9c2c | koutsoub | } |
171 | 732d9c2c | koutsoub | } |
172 | 732d9c2c | koutsoub | }); |
173 | 732d9c2c | koutsoub | alertDialog.setButton2("CANCEL",
|
174 | 732d9c2c | koutsoub | new DialogInterface.OnClickListener() {
|
175 | 732d9c2c | koutsoub | public void onClick(DialogInterface dialog, int which) { |
176 | 732d9c2c | koutsoub | |
177 | 732d9c2c | koutsoub | } |
178 | 732d9c2c | koutsoub | }); |
179 | 732d9c2c | koutsoub | alertDialog.setCancelable(true);
|
180 | 732d9c2c | koutsoub | alertDialog.show(); |
181 | 732d9c2c | koutsoub | return true; |
182 | 732d9c2c | koutsoub | case 1: |
183 | ad4d3f12 | koutsoub | final AlertDialog.Builder alert = new AlertDialog.Builder( |
184 | ad4d3f12 | koutsoub | PithosGroupsActivity.this); |
185 | ad4d3f12 | koutsoub | alert.setTitle("Add User");
|
186 | ad4d3f12 | koutsoub | final AutoCompleteTextView input = new AutoCompleteTextView( |
187 | ad4d3f12 | koutsoub | PithosGroupsActivity.this); |
188 | ad4d3f12 | koutsoub | input.setTextColor(Color.BLACK);
|
189 | ad4d3f12 | koutsoub | // input.setAdapter(new
|
190 | ad4d3f12 | koutsoub | // UserAdapter(GssGroups.this,getDroidApplication().getUserDetails(),
|
191 | ad4d3f12 | koutsoub | // new ArrayList<String>(),true));
|
192 | ad4d3f12 | koutsoub | alert.setView(input); |
193 | ad4d3f12 | koutsoub | alert.setPositiveButton("Add",
|
194 | ad4d3f12 | koutsoub | new DialogInterface.OnClickListener() {
|
195 | ad4d3f12 | koutsoub | public void onClick(DialogInterface dialog, |
196 | ad4d3f12 | koutsoub | int whichButton) {
|
197 | ad4d3f12 | koutsoub | String value = input.getText().toString().trim();
|
198 | ad4d3f12 | koutsoub | new GroupOrUserTask().execute("X-Account-Group-" + group.getName(), |
199 | ad4d3f12 | koutsoub | group.getUserString() + value); |
200 | ad4d3f12 | koutsoub | } |
201 | ad4d3f12 | koutsoub | }); |
202 | ad4d3f12 | koutsoub | |
203 | ad4d3f12 | koutsoub | alert.setNegativeButton("Cancel",
|
204 | ad4d3f12 | koutsoub | new DialogInterface.OnClickListener() {
|
205 | ad4d3f12 | koutsoub | public void onClick(DialogInterface dialog, |
206 | ad4d3f12 | koutsoub | int whichButton) {
|
207 | ad4d3f12 | koutsoub | dialog.cancel(); |
208 | ad4d3f12 | koutsoub | } |
209 | ad4d3f12 | koutsoub | }); |
210 | ad4d3f12 | koutsoub | alert.show(); |
211 | 732d9c2c | koutsoub | return true; |
212 | 732d9c2c | koutsoub | default:
|
213 | 732d9c2c | koutsoub | return super.onContextItemSelected(item); |
214 | 732d9c2c | koutsoub | } |
215 | 732d9c2c | koutsoub | } |
216 | 732d9c2c | koutsoub | |
217 | ad4d3f12 | koutsoub | private HttpBundle updateObject( String header, String value) throws CloudServersException{ |
218 | ad4d3f12 | koutsoub | Map<String, String> headers = new HashMap<String, String>(); |
219 | ad4d3f12 | koutsoub | |
220 | ad4d3f12 | koutsoub | headers.put(header,value); |
221 | ad4d3f12 | koutsoub | HttpBundle bundel = new ContainerObjectManager(
|
222 | ad4d3f12 | koutsoub | getApplicationContext()).updateObject( |
223 | ad4d3f12 | koutsoub | null, null, null, "application/json", |
224 | ad4d3f12 | koutsoub | headers, null);
|
225 | ad4d3f12 | koutsoub | return bundel;
|
226 | ad4d3f12 | koutsoub | } |
227 | ad4d3f12 | koutsoub | |
228 | ad4d3f12 | koutsoub | private class GroupOrUserTask extends |
229 | ad4d3f12 | koutsoub | AsyncTask<String, Void, HttpBundle> { |
230 | ad4d3f12 | koutsoub | |
231 | ad4d3f12 | koutsoub | private CloudServersException exception;
|
232 | ad4d3f12 | koutsoub | |
233 | ad4d3f12 | koutsoub | @Override
|
234 | ad4d3f12 | koutsoub | protected void onPreExecute() { |
235 | ad4d3f12 | koutsoub | showDialog(); |
236 | ad4d3f12 | koutsoub | app.setDownloadingObject(true);
|
237 | ad4d3f12 | koutsoub | } |
238 | ad4d3f12 | koutsoub | |
239 | ad4d3f12 | koutsoub | @Override
|
240 | ad4d3f12 | koutsoub | protected HttpBundle doInBackground(String... arg0) { |
241 | ad4d3f12 | koutsoub | HttpBundle bundle = null;
|
242 | ad4d3f12 | koutsoub | try {
|
243 | ad4d3f12 | koutsoub | bundle = updateObject(arg0[0], arg0[1]); |
244 | ad4d3f12 | koutsoub | } catch (CloudServersException e) {
|
245 | ad4d3f12 | koutsoub | exception = e; |
246 | ad4d3f12 | koutsoub | } |
247 | ad4d3f12 | koutsoub | return bundle;
|
248 | ad4d3f12 | koutsoub | } |
249 | ad4d3f12 | koutsoub | |
250 | ad4d3f12 | koutsoub | @Override
|
251 | ad4d3f12 | koutsoub | protected void onPostExecute(HttpBundle bundle) { |
252 | ad4d3f12 | koutsoub | hideDialog(); |
253 | ad4d3f12 | koutsoub | HttpResponse response = bundle.getResponse(); |
254 | ad4d3f12 | koutsoub | if (response != null) { |
255 | ad4d3f12 | koutsoub | int statusCode = response.getStatusLine().getStatusCode();
|
256 | ad4d3f12 | koutsoub | Log.i("Groups","status:"+statusCode); |
257 | ad4d3f12 | koutsoub | if (statusCode == 202) { |
258 | ad4d3f12 | koutsoub | setResult(Activity.RESULT_OK); |
259 | ecbad159 | koutsoub | refresh(); |
260 | ad4d3f12 | koutsoub | ((GroupsListView) findViewById(R.id.groupsListView)) |
261 | ad4d3f12 | koutsoub | .getGroupsAdapter().notifyDataSetChanged(); |
262 | ad4d3f12 | koutsoub | |
263 | ad4d3f12 | koutsoub | } else {
|
264 | ad4d3f12 | koutsoub | CloudServersException cse = parseCloudServersException(response); |
265 | ad4d3f12 | koutsoub | cse.printStackTrace(); |
266 | ad4d3f12 | koutsoub | if ("".equals(cse.getMessage())) { |
267 | ad4d3f12 | koutsoub | showError("There was a problem updating your Groups.",
|
268 | ad4d3f12 | koutsoub | bundle); |
269 | ad4d3f12 | koutsoub | } else {
|
270 | ad4d3f12 | koutsoub | showError("There was a problem updating your Groups. "
|
271 | ad4d3f12 | koutsoub | + cse.getMessage(), bundle); |
272 | ad4d3f12 | koutsoub | } |
273 | ecbad159 | koutsoub | } |
274 | ad4d3f12 | koutsoub | } else if (exception != null) { |
275 | ad4d3f12 | koutsoub | showError("There was a problem updating your Groups. "
|
276 | ad4d3f12 | koutsoub | + exception.getMessage(), bundle); |
277 | ecbad159 | koutsoub | } |
278 | ecbad159 | koutsoub | |
279 | ad4d3f12 | koutsoub | } |
280 | ad4d3f12 | koutsoub | } |
281 | ad4d3f12 | koutsoub | |
282 | ad4d3f12 | koutsoub | private void showNew() { |
283 | ad4d3f12 | koutsoub | final AlertDialog.Builder alert = new AlertDialog.Builder( |
284 | ad4d3f12 | koutsoub | PithosGroupsActivity.this); |
285 | ad4d3f12 | koutsoub | alert.setTitle("New Group");
|
286 | ad4d3f12 | koutsoub | final EditText input = new EditText(PithosGroupsActivity.this); |
287 | ad4d3f12 | koutsoub | alert.setView(input); |
288 | ad4d3f12 | koutsoub | alert.setPositiveButton("Create",
|
289 | ad4d3f12 | koutsoub | new DialogInterface.OnClickListener() {
|
290 | ad4d3f12 | koutsoub | public void onClick(DialogInterface dialog, int whichButton) { |
291 | ad4d3f12 | koutsoub | String value = input.getText().toString().trim();
|
292 | ad4d3f12 | koutsoub | new GroupOrUserTask().execute("X-Account-Group-" + value, "placeholder,"); |
293 | ad4d3f12 | koutsoub | |
294 | ad4d3f12 | koutsoub | } |
295 | ad4d3f12 | koutsoub | }); |
296 | ad4d3f12 | koutsoub | |
297 | ecbad159 | koutsoub | alert.setNegativeButton("Cancel",
|
298 | ecbad159 | koutsoub | new DialogInterface.OnClickListener() {
|
299 | ad4d3f12 | koutsoub | public void onClick(DialogInterface dialog, int whichButton) { |
300 | ad4d3f12 | koutsoub | dialog.cancel(); |
301 | ad4d3f12 | koutsoub | } |
302 | ad4d3f12 | koutsoub | }); |
303 | 732d9c2c | koutsoub | alert.show(); |
304 | ad4d3f12 | koutsoub | |
305 | 732d9c2c | koutsoub | } |
306 | ad4d3f12 | koutsoub | |
307 | ad4d3f12 | koutsoub | protected void refresh() { |
308 | 732d9c2c | koutsoub | try {
|
309 | 732d9c2c | koutsoub | new ContainerManager(getApplicationContext()).createList(true); |
310 | 732d9c2c | koutsoub | } catch (CloudServersException e) {
|
311 | 732d9c2c | koutsoub | // TODO Auto-generated catch block
|
312 | 732d9c2c | koutsoub | e.printStackTrace(); |
313 | 732d9c2c | koutsoub | } |
314 | ad4d3f12 | koutsoub | ((GroupsListView) findViewById(R.id.groupsListView)).getGroupsAdapter() |
315 | ad4d3f12 | koutsoub | .notifyDataSetChanged(); |
316 | 732d9c2c | koutsoub | } |
317 | 856ad13d | koutsoub | |
318 | 856ad13d | koutsoub | protected Container getContainer() { |
319 | 856ad13d | koutsoub | return (Container) this.getIntent().getExtras().get("container"); |
320 | 856ad13d | koutsoub | } |
321 | 856ad13d | koutsoub | |
322 | 856ad13d | koutsoub | @Override
|
323 | 856ad13d | koutsoub | protected void onSaveInstanceState(Bundle outState) { |
324 | 856ad13d | koutsoub | super.onSaveInstanceState(outState);
|
325 | 856ad13d | koutsoub | |
326 | 856ad13d | koutsoub | } |
327 | 856ad13d | koutsoub | |
328 | 856ad13d | koutsoub | public void startTracker() { |
329 | 856ad13d | koutsoub | if (!"google_sdk".equals(Build.PRODUCT) && !"sdk".equals(Build.PRODUCT)) { |
330 | 856ad13d | koutsoub | tracker = GoogleAnalyticsTracker.getInstance(); |
331 | 856ad13d | koutsoub | tracker.start(Config.WEB_PROPERTY_ID, 20, this); |
332 | 856ad13d | koutsoub | } |
333 | 856ad13d | koutsoub | } |
334 | 856ad13d | koutsoub | |
335 | 856ad13d | koutsoub | public void trackPageView(String page) { |
336 | 856ad13d | koutsoub | if (tracker != null) { |
337 | 856ad13d | koutsoub | tracker.trackPageView(page); |
338 | 856ad13d | koutsoub | } |
339 | 856ad13d | koutsoub | } |
340 | 856ad13d | koutsoub | |
341 | 856ad13d | koutsoub | @Override
|
342 | 856ad13d | koutsoub | protected void onDestroy() { |
343 | 856ad13d | koutsoub | super.onDestroy();
|
344 | 856ad13d | koutsoub | if (tracker != null) { |
345 | 856ad13d | koutsoub | tracker.stop(); |
346 | 856ad13d | koutsoub | } |
347 | 856ad13d | koutsoub | } |
348 | 856ad13d | koutsoub | |
349 | 856ad13d | koutsoub | public void trackEvent(String category, String action, String label, |
350 | 856ad13d | koutsoub | int value) {
|
351 | 856ad13d | koutsoub | if (tracker != null) { |
352 | 856ad13d | koutsoub | tracker.trackEvent(category, action, label, value); |
353 | 856ad13d | koutsoub | } |
354 | 856ad13d | koutsoub | } |
355 | 856ad13d | koutsoub | |
356 | 856ad13d | koutsoub | } |