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/NoteItemData.java.html

245 lines
15 KiB

<html>
<head>
<title>NoteItemData.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: #1750eb;}
.s4 { color: #067d17;}
</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">
NoteItemData.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.content.Context;</span>
<span class="s2">import </span><span class="s1">android.database.Cursor;</span>
<span class="s2">import </span><span class="s1">android.text.TextUtils;</span>
<span class="s2">import </span><span class="s1">net.micode.notes.data.Contact;</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.tool.DataUtils;</span>
<span class="s2">public class </span><span class="s1">NoteItemData {</span>
<span class="s2">static final </span><span class="s1">String [] PROJECTION = </span><span class="s2">new </span><span class="s1">String [] {</span>
<span class="s1">NoteColumns.ID,</span>
<span class="s1">NoteColumns.ALERTED_DATE,</span>
<span class="s1">NoteColumns.BG_COLOR_ID,</span>
<span class="s1">NoteColumns.CREATED_DATE,</span>
<span class="s1">NoteColumns.HAS_ATTACHMENT,</span>
<span class="s1">NoteColumns.MODIFIED_DATE,</span>
<span class="s1">NoteColumns.NOTES_COUNT,</span>
<span class="s1">NoteColumns.PARENT_ID,</span>
<span class="s1">NoteColumns.SNIPPET,</span>
<span class="s1">NoteColumns.TYPE,</span>
<span class="s1">NoteColumns.WIDGET_ID,</span>
<span class="s1">NoteColumns.WIDGET_TYPE,</span>
<span class="s1">};</span>
<span class="s2">private static final int </span><span class="s1">ID_COLUMN = </span><span class="s3">0</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">ALERTED_DATE_COLUMN = </span><span class="s3">1</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">BG_COLOR_ID_COLUMN = </span><span class="s3">2</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">CREATED_DATE_COLUMN = </span><span class="s3">3</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">HAS_ATTACHMENT_COLUMN = </span><span class="s3">4</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">MODIFIED_DATE_COLUMN = </span><span class="s3">5</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">NOTES_COUNT_COLUMN = </span><span class="s3">6</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">PARENT_ID_COLUMN = </span><span class="s3">7</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">SNIPPET_COLUMN = </span><span class="s3">8</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">TYPE_COLUMN = </span><span class="s3">9</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">WIDGET_ID_COLUMN = </span><span class="s3">10</span><span class="s1">;</span>
<span class="s2">private static final int </span><span class="s1">WIDGET_TYPE_COLUMN = </span><span class="s3">11</span><span class="s1">;</span>
<span class="s2">private long </span><span class="s1">mId;</span>
<span class="s2">private long </span><span class="s1">mAlertDate;</span>
<span class="s2">private int </span><span class="s1">mBgColorId;</span>
<span class="s2">private long </span><span class="s1">mCreatedDate;</span>
<span class="s2">private boolean </span><span class="s1">mHasAttachment;</span>
<span class="s2">private long </span><span class="s1">mModifiedDate;</span>
<span class="s2">private int </span><span class="s1">mNotesCount;</span>
<span class="s2">private long </span><span class="s1">mParentId;</span>
<span class="s2">private </span><span class="s1">String mSnippet;</span>
<span class="s2">private int </span><span class="s1">mType;</span>
<span class="s2">private int </span><span class="s1">mWidgetId;</span>
<span class="s2">private int </span><span class="s1">mWidgetType;</span>
<span class="s2">private </span><span class="s1">String mName;</span>
<span class="s2">private </span><span class="s1">String mPhoneNumber;</span>
<span class="s2">private boolean </span><span class="s1">mIsLastItem;</span>
<span class="s2">private boolean </span><span class="s1">mIsFirstItem;</span>
<span class="s2">private boolean </span><span class="s1">mIsOnlyOneItem;</span>
<span class="s2">private boolean </span><span class="s1">mIsOneNoteFollowingFolder;</span>
<span class="s2">private boolean </span><span class="s1">mIsMultiNotesFollowingFolder;</span>
<span class="s2">public </span><span class="s1">NoteItemData(Context context, Cursor cursor) {</span>
<span class="s1">mId = cursor.getLong(ID_COLUMN);</span>
<span class="s1">mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN);</span>
<span class="s1">mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN);</span>
<span class="s1">mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN);</span>
<span class="s1">mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) &gt; </span><span class="s3">0</span><span class="s1">) ? </span><span class="s2">true </span><span class="s1">: </span><span class="s2">false</span><span class="s1">;</span>
<span class="s1">mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN);</span>
<span class="s1">mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN);</span>
<span class="s1">mParentId = cursor.getLong(PARENT_ID_COLUMN);</span>
<span class="s1">mSnippet = cursor.getString(SNIPPET_COLUMN);</span>
<span class="s1">mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, </span><span class="s4">&quot;&quot;</span><span class="s1">).replace(</span>
<span class="s1">NoteEditActivity.TAG_UNCHECKED, </span><span class="s4">&quot;&quot;</span><span class="s1">);</span>
<span class="s1">mType = cursor.getInt(TYPE_COLUMN);</span>
<span class="s1">mWidgetId = cursor.getInt(WIDGET_ID_COLUMN);</span>
<span class="s1">mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN);</span>
<span class="s1">mPhoneNumber = </span><span class="s4">&quot;&quot;</span><span class="s1">;</span>
<span class="s2">if </span><span class="s1">(mParentId == Notes.ID_CALL_RECORD_FOLDER) {</span>
<span class="s1">mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId);</span>
<span class="s2">if </span><span class="s1">(!TextUtils.isEmpty(mPhoneNumber)) {</span>
<span class="s1">mName = Contact.getContact(context, mPhoneNumber);</span>
<span class="s2">if </span><span class="s1">(mName == </span><span class="s2">null</span><span class="s1">) {</span>
<span class="s1">mName = mPhoneNumber;</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">if </span><span class="s1">(mName == </span><span class="s2">null</span><span class="s1">) {</span>
<span class="s1">mName = </span><span class="s4">&quot;&quot;</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">checkPostion(cursor);</span>
<span class="s1">}</span>
<span class="s2">private void </span><span class="s1">checkPostion(Cursor cursor) {</span>
<span class="s1">mIsLastItem = cursor.isLast() ? </span><span class="s2">true </span><span class="s1">: </span><span class="s2">false</span><span class="s1">;</span>
<span class="s1">mIsFirstItem = cursor.isFirst() ? </span><span class="s2">true </span><span class="s1">: </span><span class="s2">false</span><span class="s1">;</span>
<span class="s1">mIsOnlyOneItem = (cursor.getCount() == </span><span class="s3">1</span><span class="s1">);</span>
<span class="s1">mIsMultiNotesFollowingFolder = </span><span class="s2">false</span><span class="s1">;</span>
<span class="s1">mIsOneNoteFollowingFolder = </span><span class="s2">false</span><span class="s1">;</span>
<span class="s2">if </span><span class="s1">(mType == Notes.TYPE_NOTE &amp;&amp; !mIsFirstItem) {</span>
<span class="s2">int </span><span class="s1">position = cursor.getPosition();</span>
<span class="s2">if </span><span class="s1">(cursor.moveToPrevious()) {</span>
<span class="s2">if </span><span class="s1">(cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER</span>
<span class="s1">|| cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) {</span>
<span class="s2">if </span><span class="s1">(cursor.getCount() &gt; (position + </span><span class="s3">1</span><span class="s1">)) {</span>
<span class="s1">mIsMultiNotesFollowingFolder = </span><span class="s2">true</span><span class="s1">;</span>
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
<span class="s1">mIsOneNoteFollowingFolder = </span><span class="s2">true</span><span class="s1">;</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">if </span><span class="s1">(!cursor.moveToNext()) {</span>
<span class="s2">throw new </span><span class="s1">IllegalStateException(</span><span class="s4">&quot;cursor move to previous but can't move back&quot;</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">isOneFollowingFolder() {</span>
<span class="s2">return </span><span class="s1">mIsOneNoteFollowingFolder;</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">isMultiFollowingFolder() {</span>
<span class="s2">return </span><span class="s1">mIsMultiNotesFollowingFolder;</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">isLast() {</span>
<span class="s2">return </span><span class="s1">mIsLastItem;</span>
<span class="s1">}</span>
<span class="s2">public </span><span class="s1">String getCallName() {</span>
<span class="s2">return </span><span class="s1">mName;</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">isFirst() {</span>
<span class="s2">return </span><span class="s1">mIsFirstItem;</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">isSingle() {</span>
<span class="s2">return </span><span class="s1">mIsOnlyOneItem;</span>
<span class="s1">}</span>
<span class="s2">public long </span><span class="s1">getId() {</span>
<span class="s2">return </span><span class="s1">mId;</span>
<span class="s1">}</span>
<span class="s2">public long </span><span class="s1">getAlertDate() {</span>
<span class="s2">return </span><span class="s1">mAlertDate;</span>
<span class="s1">}</span>
<span class="s2">public long </span><span class="s1">getCreatedDate() {</span>
<span class="s2">return </span><span class="s1">mCreatedDate;</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">hasAttachment() {</span>
<span class="s2">return </span><span class="s1">mHasAttachment;</span>
<span class="s1">}</span>
<span class="s2">public long </span><span class="s1">getModifiedDate() {</span>
<span class="s2">return </span><span class="s1">mModifiedDate;</span>
<span class="s1">}</span>
<span class="s2">public int </span><span class="s1">getBgColorId() {</span>
<span class="s2">return </span><span class="s1">mBgColorId;</span>
<span class="s1">}</span>
<span class="s2">public long </span><span class="s1">getParentId() {</span>
<span class="s2">return </span><span class="s1">mParentId;</span>
<span class="s1">}</span>
<span class="s2">public int </span><span class="s1">getNotesCount() {</span>
<span class="s2">return </span><span class="s1">mNotesCount;</span>
<span class="s1">}</span>
<span class="s2">public long </span><span class="s1">getFolderId () {</span>
<span class="s2">return </span><span class="s1">mParentId;</span>
<span class="s1">}</span>
<span class="s2">public int </span><span class="s1">getType() {</span>
<span class="s2">return </span><span class="s1">mType;</span>
<span class="s1">}</span>
<span class="s2">public int </span><span class="s1">getWidgetType() {</span>
<span class="s2">return </span><span class="s1">mWidgetType;</span>
<span class="s1">}</span>
<span class="s2">public int </span><span class="s1">getWidgetId() {</span>
<span class="s2">return </span><span class="s1">mWidgetId;</span>
<span class="s1">}</span>
<span class="s2">public </span><span class="s1">String getSnippet() {</span>
<span class="s2">return </span><span class="s1">mSnippet;</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">hasAlert() {</span>
<span class="s2">return </span><span class="s1">(mAlertDate &gt; </span><span class="s3">0</span><span class="s1">);</span>
<span class="s1">}</span>
<span class="s2">public boolean </span><span class="s1">isCallRecord() {</span>
<span class="s2">return </span><span class="s1">(mParentId == Notes.ID_CALL_RECORD_FOLDER &amp;&amp; !TextUtils.isEmpty(mPhoneNumber));</span>
<span class="s1">}</span>
<span class="s2">public static int </span><span class="s1">getNoteType(Cursor cursor) {</span>
<span class="s2">return </span><span class="s1">cursor.getInt(TYPE_COLUMN);</span>
<span class="s1">}</span>
<span class="s1">}</span>
</pre>
</body>
</html>