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.
gitProject1/01src/net/micode/notes/ui/NotesPreferenceActivity.jav...

409 lines
30 KiB

<html>
<head>
<title>NotesPreferenceActivity.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">
NotesPreferenceActivity.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 &quot;License&quot;);
* 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 &quot;AS IS&quot; 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.ui;</span>
<span class="s2">import </span><span class="s1">android.accounts.Account;</span>
<span class="s2">import </span><span class="s1">android.accounts.AccountManager;</span>
<span class="s2">import </span><span class="s1">android.app.ActionBar;</span>
<span class="s2">import </span><span class="s1">android.app.AlertDialog;</span>
<span class="s2">import </span><span class="s1">android.content.BroadcastReceiver;</span>
<span class="s2">import </span><span class="s1">android.content.ContentValues;</span>
<span class="s2">import </span><span class="s1">android.content.Context;</span>
<span class="s2">import </span><span class="s1">android.content.DialogInterface;</span>
<span class="s2">import </span><span class="s1">android.content.Intent;</span>
<span class="s2">import </span><span class="s1">android.content.IntentFilter;</span>
<span class="s2">import </span><span class="s1">android.content.SharedPreferences;</span>
<span class="s2">import </span><span class="s1">android.os.Bundle;</span>
<span class="s2">import </span><span class="s1">android.preference.Preference;</span>
<span class="s2">import </span><span class="s1">android.preference.Preference.OnPreferenceClickListener;</span>
<span class="s2">import </span><span class="s1">android.preference.PreferenceActivity;</span>
<span class="s2">import </span><span class="s1">android.preference.PreferenceCategory;</span>
<span class="s2">import </span><span class="s1">android.text.TextUtils;</span>
<span class="s2">import </span><span class="s1">android.text.format.DateFormat;</span>
<span class="s2">import </span><span class="s1">android.view.LayoutInflater;</span>
<span class="s2">import </span><span class="s1">android.view.Menu;</span>
<span class="s2">import </span><span class="s1">android.view.MenuItem;</span>
<span class="s2">import </span><span class="s1">android.view.View;</span>
<span class="s2">import </span><span class="s1">android.widget.Button;</span>
<span class="s2">import </span><span class="s1">android.widget.TextView;</span>
<span class="s2">import </span><span class="s1">android.widget.Toast;</span>
<span class="s2">import </span><span class="s1">net.micode.notes.R;</span>
<span class="s2">import </span><span class="s1">net.micode.notes.data.Notes;</span>
<span class="s2">import </span><span class="s1">net.micode.notes.data.Notes.NoteColumns;</span>
<span class="s2">import </span><span class="s1">net.micode.notes.gtask.remote.GTaskSyncService;</span>
<span class="s2">public class </span><span class="s1">NotesPreferenceActivity </span><span class="s2">extends </span><span class="s1">PreferenceActivity {</span>
<span class="s2">public static final </span><span class="s1">String PREFERENCE_NAME = </span><span class="s3">&quot;notes_preferences&quot;</span><span class="s1">;</span>
<span class="s2">public static final </span><span class="s1">String PREFERENCE_SYNC_ACCOUNT_NAME = </span><span class="s3">&quot;pref_key_account_name&quot;</span><span class="s1">;</span>
<span class="s2">public static final </span><span class="s1">String PREFERENCE_LAST_SYNC_TIME = </span><span class="s3">&quot;pref_last_sync_time&quot;</span><span class="s1">;</span>
<span class="s2">public static final </span><span class="s1">String PREFERENCE_SET_BG_COLOR_KEY = </span><span class="s3">&quot;pref_key_bg_random_appear&quot;</span><span class="s1">;</span>
<span class="s2">private static final </span><span class="s1">String PREFERENCE_SYNC_ACCOUNT_KEY = </span><span class="s3">&quot;pref_sync_account_key&quot;</span><span class="s1">;</span>
<span class="s2">private static final </span><span class="s1">String AUTHORITIES_FILTER_KEY = </span><span class="s3">&quot;authorities&quot;</span><span class="s1">;</span>
<span class="s2">private </span><span class="s1">PreferenceCategory mAccountCategory;</span>
<span class="s2">private </span><span class="s1">GTaskReceiver mReceiver;</span>
<span class="s2">private </span><span class="s1">Account[] mOriAccounts;</span>
<span class="s2">private boolean </span><span class="s1">mHasAddedAccount;</span>
<span class="s1">@Override</span>
<span class="s2">protected void </span><span class="s1">onCreate(Bundle icicle) {</span>
<span class="s2">super</span><span class="s1">.onCreate(icicle);</span>
<span class="s0">/* using the app icon for navigation */</span>
<span class="s1">getActionBar().setDisplayHomeAsUpEnabled(</span><span class="s2">true</span><span class="s1">);</span>
<span class="s1">addPreferencesFromResource(R.xml.preferences);</span>
<span class="s1">mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY);</span>
<span class="s1">mReceiver = </span><span class="s2">new </span><span class="s1">GTaskReceiver();</span>
<span class="s1">IntentFilter filter = </span><span class="s2">new </span><span class="s1">IntentFilter();</span>
<span class="s1">filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME);</span>
<span class="s1">registerReceiver(mReceiver, filter);</span>
<span class="s1">mOriAccounts = </span><span class="s2">null</span><span class="s1">;</span>
<span class="s1">View header = LayoutInflater.from(</span><span class="s2">this</span><span class="s1">).inflate(R.layout.settings_header, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">getListView().addHeaderView(header, </span><span class="s2">null</span><span class="s1">, </span><span class="s2">true</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">@Override</span>
<span class="s2">protected void </span><span class="s1">onResume() {</span>
<span class="s2">super</span><span class="s1">.onResume();</span>
<span class="s0">// need to set sync account automatically if user has added a new</span>
<span class="s0">// account</span>
<span class="s2">if </span><span class="s1">(mHasAddedAccount) {</span>
<span class="s1">Account[] accounts = getGoogleAccounts();</span>
<span class="s2">if </span><span class="s1">(mOriAccounts != </span><span class="s2">null </span><span class="s1">&amp;&amp; accounts.length &gt; mOriAccounts.length) {</span>
<span class="s2">for </span><span class="s1">(Account accountNew : accounts) {</span>
<span class="s2">boolean </span><span class="s1">found = </span><span class="s2">false</span><span class="s1">;</span>
<span class="s2">for </span><span class="s1">(Account accountOld : mOriAccounts) {</span>
<span class="s2">if </span><span class="s1">(TextUtils.equals(accountOld.name, accountNew.name)) {</span>
<span class="s1">found = </span><span class="s2">true</span><span class="s1">;</span>
<span class="s2">break</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">if </span><span class="s1">(!found) {</span>
<span class="s1">setSyncAccount(accountNew.name);</span>
<span class="s2">break</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">refreshUI();</span>
<span class="s1">}</span>
<span class="s1">@Override</span>
<span class="s2">protected void </span><span class="s1">onDestroy() {</span>
<span class="s2">if </span><span class="s1">(mReceiver != </span><span class="s2">null</span><span class="s1">) {</span>
<span class="s1">unregisterReceiver(mReceiver);</span>
<span class="s1">}</span>
<span class="s2">super</span><span class="s1">.onDestroy();</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">loadAccountPreference() {</span>
<span class="s1">mAccountCategory.removeAll();</span>
<span class="s1">Preference accountPref = </span><span class="s2">new </span><span class="s1">Preference(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s2">final </span><span class="s1">String defaultAccount = getSyncAccountName(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s1">accountPref.setTitle(getString(R.string.preferences_account_title));</span>
<span class="s1">accountPref.setSummary(getString(R.string.preferences_account_summary));</span>
<span class="s1">accountPref.setOnPreferenceClickListener(</span><span class="s2">new </span><span class="s1">OnPreferenceClickListener() {</span>
<span class="s2">public boolean </span><span class="s1">onPreferenceClick(Preference preference) {</span>
<span class="s2">if </span><span class="s1">(!GTaskSyncService.isSyncing()) {</span>
<span class="s2">if </span><span class="s1">(TextUtils.isEmpty(defaultAccount)) {</span>
<span class="s0">// the first time to set account</span>
<span class="s1">showSelectAccountAlertDialog();</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s0">// if the account has already been set, we need to promp</span>
<span class="s0">// user about the risk</span>
<span class="s1">showChangeAccountConfirmAlertDialog();</span>
<span class="s1">}</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s1">Toast.makeText(NotesPreferenceActivity.</span><span class="s2">this</span><span class="s1">,</span>
<span class="s1">R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT)</span>
<span class="s1">.show();</span>
<span class="s1">}</span>
<span class="s2">return true</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">mAccountCategory.addPreference(accountPref);</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">loadSyncButton() {</span>
<span class="s1">Button syncButton = (Button) findViewById(R.id.preference_sync_button);</span>
<span class="s1">TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview);</span>
<span class="s0">// set button state</span>
<span class="s2">if </span><span class="s1">(GTaskSyncService.isSyncing()) {</span>
<span class="s1">syncButton.setText(getString(R.string.preferences_button_sync_cancel));</span>
<span class="s1">syncButton.setOnClickListener(</span><span class="s2">new </span><span class="s1">View.OnClickListener() {</span>
<span class="s2">public void </span><span class="s1">onClick(View v) {</span>
<span class="s1">GTaskSyncService.cancelSync(NotesPreferenceActivity.</span><span class="s2">this</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s1">syncButton.setText(getString(R.string.preferences_button_sync_immediately));</span>
<span class="s1">syncButton.setOnClickListener(</span><span class="s2">new </span><span class="s1">View.OnClickListener() {</span>
<span class="s2">public void </span><span class="s1">onClick(View v) {</span>
<span class="s1">GTaskSyncService.startSync(NotesPreferenceActivity.</span><span class="s2">this</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">}</span>
<span class="s1">syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(</span><span class="s2">this</span><span class="s1">)));</span>
<span class="s0">// set last sync time</span>
<span class="s2">if </span><span class="s1">(GTaskSyncService.isSyncing()) {</span>
<span class="s1">lastSyncTimeView.setText(GTaskSyncService.getProgressString());</span>
<span class="s1">lastSyncTimeView.setVisibility(View.VISIBLE);</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s2">long </span><span class="s1">lastSyncTime = getLastSyncTime(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s2">if </span><span class="s1">(lastSyncTime != </span><span class="s4">0</span><span class="s1">) {</span>
<span class="s1">lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time,</span>
<span class="s1">DateFormat.format(getString(R.string.preferences_last_sync_time_format),</span>
<span class="s1">lastSyncTime)));</span>
<span class="s1">lastSyncTimeView.setVisibility(View.VISIBLE);</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s1">lastSyncTimeView.setVisibility(View.GONE);</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">refreshUI() {</span>
<span class="s1">loadAccountPreference();</span>
<span class="s1">loadSyncButton();</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">showSelectAccountAlertDialog() {</span>
<span class="s1">AlertDialog.Builder dialogBuilder = </span><span class="s2">new </span><span class="s1">AlertDialog.Builder(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s1">View titleView = LayoutInflater.from(</span><span class="s2">this</span><span class="s1">).inflate(R.layout.account_dialog_title, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title);</span>
<span class="s1">titleTextView.setText(getString(R.string.preferences_dialog_select_account_title));</span>
<span class="s1">TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle);</span>
<span class="s1">subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips));</span>
<span class="s1">dialogBuilder.setCustomTitle(titleView);</span>
<span class="s1">dialogBuilder.setPositiveButton(</span><span class="s2">null</span><span class="s1">, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">Account[] accounts = getGoogleAccounts();</span>
<span class="s1">String defAccount = getSyncAccountName(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s1">mOriAccounts = accounts;</span>
<span class="s1">mHasAddedAccount = </span><span class="s2">false</span><span class="s1">;</span>
<span class="s2">if </span><span class="s1">(accounts.length &gt; </span><span class="s4">0</span><span class="s1">) {</span>
<span class="s1">CharSequence[] items = </span><span class="s2">new </span><span class="s1">CharSequence[accounts.length];</span>
<span class="s2">final </span><span class="s1">CharSequence[] itemMapping = items;</span>
<span class="s2">int </span><span class="s1">checkedItem = -</span><span class="s4">1</span><span class="s1">;</span>
<span class="s2">int </span><span class="s1">index = </span><span class="s4">0</span><span class="s1">;</span>
<span class="s2">for </span><span class="s1">(Account account : accounts) {</span>
<span class="s2">if </span><span class="s1">(TextUtils.equals(account.name, defAccount)) {</span>
<span class="s1">checkedItem = index;</span>
<span class="s1">}</span>
<span class="s1">items[index++] = account.name;</span>
<span class="s1">}</span>
<span class="s1">dialogBuilder.setSingleChoiceItems(items, checkedItem,</span>
<span class="s2">new </span><span class="s1">DialogInterface.OnClickListener() {</span>
<span class="s2">public void </span><span class="s1">onClick(DialogInterface dialog, </span><span class="s2">int </span><span class="s1">which) {</span>
<span class="s1">setSyncAccount(itemMapping[which].toString());</span>
<span class="s1">dialog.dismiss();</span>
<span class="s1">refreshUI();</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">}</span>
<span class="s1">View addAccountView = LayoutInflater.from(</span><span class="s2">this</span><span class="s1">).inflate(R.layout.add_account_text, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">dialogBuilder.setView(addAccountView);</span>
<span class="s2">final </span><span class="s1">AlertDialog dialog = dialogBuilder.show();</span>
<span class="s1">addAccountView.setOnClickListener(</span><span class="s2">new </span><span class="s1">View.OnClickListener() {</span>
<span class="s2">public void </span><span class="s1">onClick(View v) {</span>
<span class="s1">mHasAddedAccount = </span><span class="s2">true</span><span class="s1">;</span>
<span class="s1">Intent intent = </span><span class="s2">new </span><span class="s1">Intent(</span><span class="s3">&quot;android.settings.ADD_ACCOUNT_SETTINGS&quot;</span><span class="s1">);</span>
<span class="s1">intent.putExtra(AUTHORITIES_FILTER_KEY, </span><span class="s2">new </span><span class="s1">String[] {</span>
<span class="s3">&quot;gmail-ls&quot;</span>
<span class="s1">});</span>
<span class="s1">startActivityForResult(intent, -</span><span class="s4">1</span><span class="s1">);</span>
<span class="s1">dialog.dismiss();</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">showChangeAccountConfirmAlertDialog() {</span>
<span class="s1">AlertDialog.Builder dialogBuilder = </span><span class="s2">new </span><span class="s1">AlertDialog.Builder(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s1">View titleView = LayoutInflater.from(</span><span class="s2">this</span><span class="s1">).inflate(R.layout.account_dialog_title, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title);</span>
<span class="s1">titleTextView.setText(getString(R.string.preferences_dialog_change_account_title,</span>
<span class="s1">getSyncAccountName(</span><span class="s2">this</span><span class="s1">)));</span>
<span class="s1">TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle);</span>
<span class="s1">subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg));</span>
<span class="s1">dialogBuilder.setCustomTitle(titleView);</span>
<span class="s1">CharSequence[] menuItemArray = </span><span class="s2">new </span><span class="s1">CharSequence[] {</span>
<span class="s1">getString(R.string.preferences_menu_change_account),</span>
<span class="s1">getString(R.string.preferences_menu_remove_account),</span>
<span class="s1">getString(R.string.preferences_menu_cancel)</span>
<span class="s1">};</span>
<span class="s1">dialogBuilder.setItems(menuItemArray, </span><span class="s2">new </span><span class="s1">DialogInterface.OnClickListener() {</span>
<span class="s2">public void </span><span class="s1">onClick(DialogInterface dialog, </span><span class="s2">int </span><span class="s1">which) {</span>
<span class="s2">if </span><span class="s1">(which == </span><span class="s4">0</span><span class="s1">) {</span>
<span class="s1">showSelectAccountAlertDialog();</span>
<span class="s1">} </span><span class="s2">else if </span><span class="s1">(which == </span><span class="s4">1</span><span class="s1">) {</span>
<span class="s1">removeSyncAccount();</span>
<span class="s1">refreshUI();</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">});</span>
<span class="s1">dialogBuilder.show();</span>
<span class="s1">}</span>
<span class="s2">private </span><span class="s1">Account[] getGoogleAccounts() {</span>
<span class="s1">AccountManager accountManager = AccountManager.get(</span><span class="s2">this</span><span class="s1">);</span>
<span class="s2">return </span><span class="s1">accountManager.getAccountsByType(</span><span class="s3">&quot;com.google&quot;</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">setSyncAccount(String account) {</span>
<span class="s2">if </span><span class="s1">(!getSyncAccountName(</span><span class="s2">this</span><span class="s1">).equals(account)) {</span>
<span class="s1">SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);</span>
<span class="s1">SharedPreferences.Editor editor = settings.edit();</span>
<span class="s2">if </span><span class="s1">(account != </span><span class="s2">null</span><span class="s1">) {</span>
<span class="s1">editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account);</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s1">editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, </span><span class="s3">&quot;&quot;</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">editor.commit();</span>
<span class="s0">// clean up last sync time</span>
<span class="s1">setLastSyncTime(</span><span class="s2">this</span><span class="s1">, </span><span class="s4">0</span><span class="s1">);</span>
<span class="s0">// clean up local gtask related info</span>
<span class="s2">new </span><span class="s1">Thread(</span><span class="s2">new </span><span class="s1">Runnable() {</span>
<span class="s2">public void </span><span class="s1">run() {</span>
<span class="s1">ContentValues values = </span><span class="s2">new </span><span class="s1">ContentValues();</span>
<span class="s1">values.put(NoteColumns.GTASK_ID, </span><span class="s3">&quot;&quot;</span><span class="s1">);</span>
<span class="s1">values.put(NoteColumns.SYNC_ID, </span><span class="s4">0</span><span class="s1">);</span>
<span class="s1">getContentResolver().update(Notes.CONTENT_NOTE_URI, values, </span><span class="s2">null</span><span class="s1">, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">}).start();</span>
<span class="s1">Toast.makeText(NotesPreferenceActivity.</span><span class="s2">this</span><span class="s1">,</span>
<span class="s1">getString(R.string.preferences_toast_success_set_accout, account),</span>
<span class="s1">Toast.LENGTH_SHORT).show();</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">removeSyncAccount() {</span>
<span class="s1">SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);</span>
<span class="s1">SharedPreferences.Editor editor = settings.edit();</span>
<span class="s2">if </span><span class="s1">(settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) {</span>
<span class="s1">editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME);</span>
<span class="s1">}</span>
<span class="s2">if </span><span class="s1">(settings.contains(PREFERENCE_LAST_SYNC_TIME)) {</span>
<span class="s1">editor.remove(PREFERENCE_LAST_SYNC_TIME);</span>
<span class="s1">}</span>
<span class="s1">editor.commit();</span>
<span class="s0">// clean up local gtask related info</span>
<span class="s2">new </span><span class="s1">Thread(</span><span class="s2">new </span><span class="s1">Runnable() {</span>
<span class="s2">public void </span><span class="s1">run() {</span>
<span class="s1">ContentValues values = </span><span class="s2">new </span><span class="s1">ContentValues();</span>
<span class="s1">values.put(NoteColumns.GTASK_ID, </span><span class="s3">&quot;&quot;</span><span class="s1">);</span>
<span class="s1">values.put(NoteColumns.SYNC_ID, </span><span class="s4">0</span><span class="s1">);</span>
<span class="s1">getContentResolver().update(Notes.CONTENT_NOTE_URI, values, </span><span class="s2">null</span><span class="s1">, </span><span class="s2">null</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">}).start();</span>
<span class="s1">}</span>
<span class="s2">public static </span><span class="s1">String getSyncAccountName(Context context) {</span>
<span class="s1">SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,</span>
<span class="s1">Context.MODE_PRIVATE);</span>
<span class="s2">return </span><span class="s1">settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, </span><span class="s3">&quot;&quot;</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s2">public static void </span><span class="s1">setLastSyncTime(Context context, </span><span class="s2">long </span><span class="s1">time) {</span>
<span class="s1">SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,</span>
<span class="s1">Context.MODE_PRIVATE);</span>
<span class="s1">SharedPreferences.Editor editor = settings.edit();</span>
<span class="s1">editor.putLong(PREFERENCE_LAST_SYNC_TIME, time);</span>
<span class="s1">editor.commit();</span>
<span class="s1">}</span>
<span class="s2">public static long </span><span class="s1">getLastSyncTime(Context context) {</span>
<span class="s1">SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,</span>
<span class="s1">Context.MODE_PRIVATE);</span>
<span class="s2">return </span><span class="s1">settings.getLong(PREFERENCE_LAST_SYNC_TIME, </span><span class="s4">0</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s2">private class </span><span class="s1">GTaskReceiver </span><span class="s2">extends </span><span class="s1">BroadcastReceiver {</span>
<span class="s1">@Override</span>
<span class="s2">public void </span><span class="s1">onReceive(Context context, Intent intent) {</span>
<span class="s1">refreshUI();</span>
<span class="s2">if </span><span class="s1">(intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, </span><span class="s2">false</span><span class="s1">)) {</span>
<span class="s1">TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview);</span>
<span class="s1">syncStatus.setText(intent</span>
<span class="s1">.getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG));</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">onOptionsItemSelected(MenuItem item) {</span>
<span class="s2">switch </span><span class="s1">(item.getItemId()) {</span>
<span class="s2">case </span><span class="s1">android.R.id.home:</span>
<span class="s1">Intent intent = </span><span class="s2">new </span><span class="s1">Intent(</span><span class="s2">this</span><span class="s1">, NotesListActivity.</span><span class="s2">class</span><span class="s1">);</span>
<span class="s1">intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);</span>
<span class="s1">startActivity(intent);</span>
<span class="s2">return true</span><span class="s1">;</span>
<span class="s2">default</span><span class="s1">:</span>
<span class="s2">return false</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
</pre>
</body>
</html>