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.
144 lines
9.1 KiB
144 lines
9.1 KiB
<html>
|
|
<head>
|
|
<title>GTaskASyncTask.java</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<style type="text/css">
|
|
.s0 { color: #080808;}
|
|
.s1 { color: #8c8c8c; font-style: italic;}
|
|
.s2 { color: #0033b3;}
|
|
.s3 { 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">
|
|
GTaskASyncTask.java</font>
|
|
</center></td></tr></table>
|
|
<pre>
|
|
<span class="s1">/*
|
|
* 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="s0">net.micode.notes.gtask.remote;</span>
|
|
|
|
<span class="s2">import </span><span class="s0">android.app.Notification;</span>
|
|
<span class="s2">import </span><span class="s0">android.app.NotificationManager;</span>
|
|
<span class="s2">import </span><span class="s0">android.app.PendingIntent;</span>
|
|
<span class="s2">import </span><span class="s0">android.content.Context;</span>
|
|
<span class="s2">import </span><span class="s0">android.content.Intent;</span>
|
|
<span class="s2">import </span><span class="s0">android.os.AsyncTask;</span>
|
|
|
|
<span class="s2">import </span><span class="s0">net.micode.notes.R;</span>
|
|
<span class="s2">import </span><span class="s0">net.micode.notes.ui.NotesListActivity;</span>
|
|
<span class="s2">import </span><span class="s0">net.micode.notes.ui.NotesPreferenceActivity;</span>
|
|
|
|
|
|
<span class="s2">public class </span><span class="s0">GTaskASyncTask </span><span class="s2">extends </span><span class="s0">AsyncTask<Void, String, Integer> {</span>
|
|
|
|
<span class="s2">private static int </span><span class="s0">GTASK_SYNC_NOTIFICATION_ID = </span><span class="s3">5234235</span><span class="s0">;</span>
|
|
|
|
<span class="s2">public interface </span><span class="s0">OnCompleteListener {</span>
|
|
<span class="s2">void </span><span class="s0">onComplete();</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s2">private </span><span class="s0">Context mContext;</span>
|
|
|
|
<span class="s2">private </span><span class="s0">NotificationManager mNotifiManager;</span>
|
|
|
|
<span class="s2">private </span><span class="s0">GTaskManager mTaskManager;</span>
|
|
|
|
<span class="s2">private </span><span class="s0">OnCompleteListener mOnCompleteListener;</span>
|
|
|
|
<span class="s2">public </span><span class="s0">GTaskASyncTask(Context context, OnCompleteListener listener) {</span>
|
|
<span class="s0">mContext = context;</span>
|
|
<span class="s0">mOnCompleteListener = listener;</span>
|
|
<span class="s0">mNotifiManager = (NotificationManager) mContext</span>
|
|
<span class="s0">.getSystemService(Context.NOTIFICATION_SERVICE);</span>
|
|
<span class="s0">mTaskManager = GTaskManager.getInstance();</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s2">public void </span><span class="s0">cancelSync() {</span>
|
|
<span class="s0">mTaskManager.cancelSync();</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s2">public void </span><span class="s0">publishProgess(String message) {</span>
|
|
<span class="s0">publishProgress(</span><span class="s2">new </span><span class="s0">String[]{</span>
|
|
<span class="s0">message</span>
|
|
<span class="s0">});</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s2">private void </span><span class="s0">showNotification(</span><span class="s2">int </span><span class="s0">tickerId, String content) {</span>
|
|
<span class="s0">PendingIntent pendingIntent;</span>
|
|
<span class="s2">if </span><span class="s0">(tickerId != R.string.ticker_success) {</span>
|
|
<span class="s0">pendingIntent = PendingIntent.getActivity(mContext, </span><span class="s3">0</span><span class="s0">, </span><span class="s2">new </span><span class="s0">Intent(mContext,</span>
|
|
<span class="s0">NotesPreferenceActivity.</span><span class="s2">class</span><span class="s0">), PendingIntent.FLAG_IMMUTABLE);</span>
|
|
<span class="s0">} </span><span class="s2">else </span><span class="s0">{</span>
|
|
<span class="s0">pendingIntent = PendingIntent.getActivity(mContext, </span><span class="s3">0</span><span class="s0">, </span><span class="s2">new </span><span class="s0">Intent(mContext,</span>
|
|
<span class="s0">NotesListActivity.</span><span class="s2">class</span><span class="s0">), PendingIntent.FLAG_IMMUTABLE);</span>
|
|
<span class="s0">}</span>
|
|
<span class="s0">Notification.Builder builder = </span><span class="s2">new </span><span class="s0">Notification.Builder(mContext)</span>
|
|
<span class="s0">.setAutoCancel(</span><span class="s2">true</span><span class="s0">)</span>
|
|
<span class="s0">.setContentTitle(mContext.getString(R.string.app_name))</span>
|
|
<span class="s0">.setContentText(content)</span>
|
|
<span class="s0">.setContentIntent(pendingIntent)</span>
|
|
<span class="s0">.setWhen(System.currentTimeMillis())</span>
|
|
<span class="s0">.setOngoing(</span><span class="s2">true</span><span class="s0">);</span>
|
|
<span class="s0">Notification notification = builder.getNotification();</span>
|
|
<span class="s0">mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s0">@Override</span>
|
|
<span class="s2">protected </span><span class="s0">Integer doInBackground(Void... unused) {</span>
|
|
<span class="s0">publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity</span>
|
|
<span class="s0">.getSyncAccountName(mContext)));</span>
|
|
<span class="s2">return </span><span class="s0">mTaskManager.sync(mContext, </span><span class="s2">this</span><span class="s0">);</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s0">@Override</span>
|
|
<span class="s2">protected void </span><span class="s0">onProgressUpdate(String... progress) {</span>
|
|
<span class="s0">showNotification(R.string.ticker_syncing, progress[</span><span class="s3">0</span><span class="s0">]);</span>
|
|
<span class="s2">if </span><span class="s0">(mContext </span><span class="s2">instanceof </span><span class="s0">GTaskSyncService) {</span>
|
|
<span class="s0">((GTaskSyncService) mContext).sendBroadcast(progress[</span><span class="s3">0</span><span class="s0">]);</span>
|
|
<span class="s0">}</span>
|
|
<span class="s0">}</span>
|
|
|
|
<span class="s0">@Override</span>
|
|
<span class="s2">protected void </span><span class="s0">onPostExecute(Integer result) {</span>
|
|
<span class="s2">if </span><span class="s0">(result == GTaskManager.STATE_SUCCESS) {</span>
|
|
<span class="s0">showNotification(R.string.ticker_success, mContext.getString(</span>
|
|
<span class="s0">R.string.success_sync_account, mTaskManager.getSyncAccount()));</span>
|
|
<span class="s0">NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis());</span>
|
|
<span class="s0">} </span><span class="s2">else if </span><span class="s0">(result == GTaskManager.STATE_NETWORK_ERROR) {</span>
|
|
<span class="s0">showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network));</span>
|
|
<span class="s0">} </span><span class="s2">else if </span><span class="s0">(result == GTaskManager.STATE_INTERNAL_ERROR) {</span>
|
|
<span class="s0">showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal));</span>
|
|
<span class="s0">} </span><span class="s2">else if </span><span class="s0">(result == GTaskManager.STATE_SYNC_CANCELLED) {</span>
|
|
<span class="s0">showNotification(R.string.ticker_cancel, mContext</span>
|
|
<span class="s0">.getString(R.string.error_sync_cancelled));</span>
|
|
<span class="s0">}</span>
|
|
<span class="s2">if </span><span class="s0">(mOnCompleteListener != </span><span class="s2">null</span><span class="s0">) {</span>
|
|
<span class="s2">new </span><span class="s0">Thread(</span><span class="s2">new </span><span class="s0">Runnable() {</span>
|
|
|
|
<span class="s2">public void </span><span class="s0">run() {</span>
|
|
<span class="s0">mOnCompleteListener.onComplete();</span>
|
|
<span class="s0">}</span>
|
|
<span class="s0">}).start();</span>
|
|
<span class="s0">}</span>
|
|
<span class="s0">}</span>
|
|
<span class="s0">}</span>
|
|
</pre>
|
|
</body>
|
|
</html> |