You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
9.2 KiB
149 lines
9.2 KiB
<html>
|
|
<head>
|
|
<title>GTaskSyncService.java</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<style type="text/css">
|
|
.s0 { color: #8c8c8c; font-style: italic;}
|
|
.s1 { color: #080808;}
|
|
.s2 { color: #0033b3;}
|
|
.s3 { color: #067d17;}
|
|
.s4 { color: #1750eb;}
|
|
</style>
|
|
</head>
|
|
<body bgcolor="#ffffff">
|
|
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#c0c0c0" >
|
|
<tr><td><center>
|
|
<font face="Arial, Helvetica" color="#000000">
|
|
GTaskSyncService.java</font>
|
|
</center></td></tr></table>
|
|
<pre><span class="s0">/*
|
|
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/</span>
|
|
|
|
<span class="s2">package </span><span class="s1">net.micode.notes.gtask.remote;</span>
|
|
|
|
<span class="s2">import </span><span class="s1">android.app.Activity;</span>
|
|
<span class="s2">import </span><span class="s1">android.app.Service;</span>
|
|
<span class="s2">import </span><span class="s1">android.content.Context;</span>
|
|
<span class="s2">import </span><span class="s1">android.content.Intent;</span>
|
|
<span class="s2">import </span><span class="s1">android.os.Bundle;</span>
|
|
<span class="s2">import </span><span class="s1">android.os.IBinder;</span>
|
|
|
|
<span class="s2">public class </span><span class="s1">GTaskSyncService </span><span class="s2">extends </span><span class="s1">Service {</span>
|
|
<span class="s2">public final static </span><span class="s1">String ACTION_STRING_NAME = </span><span class="s3">"sync_action_type"</span><span class="s1">;</span>
|
|
|
|
<span class="s2">public final static int </span><span class="s1">ACTION_START_SYNC = </span><span class="s4">0</span><span class="s1">;</span>
|
|
|
|
<span class="s2">public final static int </span><span class="s1">ACTION_CANCEL_SYNC = </span><span class="s4">1</span><span class="s1">;</span>
|
|
|
|
<span class="s2">public final static int </span><span class="s1">ACTION_INVALID = </span><span class="s4">2</span><span class="s1">;</span>
|
|
|
|
<span class="s2">public final static </span><span class="s1">String GTASK_SERVICE_BROADCAST_NAME = </span><span class="s3">"net.micode.notes.gtask.remote.gtask_sync_service"</span><span class="s1">;</span>
|
|
|
|
<span class="s2">public final static </span><span class="s1">String GTASK_SERVICE_BROADCAST_IS_SYNCING = </span><span class="s3">"isSyncing"</span><span class="s1">;</span>
|
|
|
|
<span class="s2">public final static </span><span class="s1">String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = </span><span class="s3">"progressMsg"</span><span class="s1">;</span>
|
|
|
|
<span class="s2">private static </span><span class="s1">GTaskASyncTask mSyncTask = </span><span class="s2">null</span><span class="s1">;</span>
|
|
|
|
<span class="s2">private static </span><span class="s1">String mSyncProgress = </span><span class="s3">""</span><span class="s1">;</span>
|
|
|
|
<span class="s2">private void </span><span class="s1">startSync() {</span>
|
|
<span class="s2">if </span><span class="s1">(mSyncTask == </span><span class="s2">null</span><span class="s1">) {</span>
|
|
<span class="s1">mSyncTask = </span><span class="s2">new </span><span class="s1">GTaskASyncTask(</span><span class="s2">this</span><span class="s1">, </span><span class="s2">new </span><span class="s1">GTaskASyncTask.OnCompleteListener() {</span>
|
|
<span class="s2">public void </span><span class="s1">onComplete() {</span>
|
|
<span class="s1">mSyncTask = </span><span class="s2">null</span><span class="s1">;</span>
|
|
<span class="s1">sendBroadcast(</span><span class="s3">""</span><span class="s1">);</span>
|
|
<span class="s1">stopSelf();</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">});</span>
|
|
<span class="s1">sendBroadcast(</span><span class="s3">""</span><span class="s1">);</span>
|
|
<span class="s1">mSyncTask.execute();</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">private void </span><span class="s1">cancelSync() {</span>
|
|
<span class="s2">if </span><span class="s1">(mSyncTask != </span><span class="s2">null</span><span class="s1">) {</span>
|
|
<span class="s1">mSyncTask.cancelSync();</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s1">@Override</span>
|
|
<span class="s2">public void </span><span class="s1">onCreate() {</span>
|
|
<span class="s1">mSyncTask = </span><span class="s2">null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s1">@Override</span>
|
|
<span class="s2">public int </span><span class="s1">onStartCommand(Intent intent, </span><span class="s2">int </span><span class="s1">flags, </span><span class="s2">int </span><span class="s1">startId) {</span>
|
|
<span class="s1">Bundle bundle = intent.getExtras();</span>
|
|
<span class="s2">if </span><span class="s1">(bundle != </span><span class="s2">null </span><span class="s1">&& bundle.containsKey(ACTION_STRING_NAME)) {</span>
|
|
<span class="s2">switch </span><span class="s1">(bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) {</span>
|
|
<span class="s2">case </span><span class="s1">ACTION_START_SYNC:</span>
|
|
<span class="s1">startSync();</span>
|
|
<span class="s2">break</span><span class="s1">;</span>
|
|
<span class="s2">case </span><span class="s1">ACTION_CANCEL_SYNC:</span>
|
|
<span class="s1">cancelSync();</span>
|
|
<span class="s2">break</span><span class="s1">;</span>
|
|
<span class="s2">default</span><span class="s1">:</span>
|
|
<span class="s2">break</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return </span><span class="s1">START_STICKY;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return super</span><span class="s1">.onStartCommand(intent, flags, startId);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s1">@Override</span>
|
|
<span class="s2">public void </span><span class="s1">onLowMemory() {</span>
|
|
<span class="s2">if </span><span class="s1">(mSyncTask != </span><span class="s2">null</span><span class="s1">) {</span>
|
|
<span class="s1">mSyncTask.cancelSync();</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">IBinder onBind(Intent intent) {</span>
|
|
<span class="s2">return null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public void </span><span class="s1">sendBroadcast(String msg) {</span>
|
|
<span class="s1">mSyncProgress = msg;</span>
|
|
<span class="s1">Intent intent = </span><span class="s2">new </span><span class="s1">Intent(GTASK_SERVICE_BROADCAST_NAME);</span>
|
|
<span class="s1">intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != </span><span class="s2">null</span><span class="s1">);</span>
|
|
<span class="s1">intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg);</span>
|
|
<span class="s1">sendBroadcast(intent);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public static void </span><span class="s1">startSync(Activity activity) {</span>
|
|
<span class="s1">GTaskManager.getInstance().setActivityContext(activity);</span>
|
|
<span class="s1">Intent intent = </span><span class="s2">new </span><span class="s1">Intent(activity, GTaskSyncService.</span><span class="s2">class</span><span class="s1">);</span>
|
|
<span class="s1">intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC);</span>
|
|
<span class="s1">activity.startService(intent);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public static void </span><span class="s1">cancelSync(Context context) {</span>
|
|
<span class="s1">Intent intent = </span><span class="s2">new </span><span class="s1">Intent(context, GTaskSyncService.</span><span class="s2">class</span><span class="s1">);</span>
|
|
<span class="s1">intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC);</span>
|
|
<span class="s1">context.startService(intent);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public static boolean </span><span class="s1">isSyncing() {</span>
|
|
<span class="s2">return </span><span class="s1">mSyncTask != </span><span class="s2">null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public static </span><span class="s1">String getProgressString() {</span>
|
|
<span class="s2">return </span><span class="s1">mSyncProgress;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
</pre>
|
|
</body>
|
|
</html> |