修复了退出界面后涂鸦不保存的bug。

lrx_branch
LiuRuiXuan 2 years ago
parent 9ebe23d962
commit 517c396f64

@ -204,6 +204,7 @@ public class Notes {
* <P> Type: TEXT </P> * <P> Type: TEXT </P>
*/ */
public static final String CONTENT = "content"; public static final String CONTENT = "content";
public static final String IMAGE="image";
/** /**

@ -25,6 +25,7 @@ import android.util.Log;
import net.micode.notes.data.Notes.DataColumns; import net.micode.notes.data.Notes.DataColumns;
import net.micode.notes.data.Notes.DataConstants; import net.micode.notes.data.Notes.DataConstants;
import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.model.Note;
public class NotesDatabaseHelper extends SQLiteOpenHelper { public class NotesDatabaseHelper extends SQLiteOpenHelper {
@ -323,6 +324,11 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
oldVersion++; oldVersion++;
} }
if(oldVersion== 4)
{
upgradeToV5(db);
oldVersion++;
}
if (reCreateTriggers) { if (reCreateTriggers) {
reCreateNoteTableTriggers(db); reCreateNoteTableTriggers(db);
reCreateDataTableTriggers(db); reCreateDataTableTriggers(db);
@ -360,4 +366,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION
+ " INTEGER NOT NULL DEFAULT 0"); + " INTEGER NOT NULL DEFAULT 0");
} }
public void upgradeToV5(SQLiteDatabase db)
{
db.execSQL("ALTER TABLE "+ TABLE.NOTE + " ADD COLUMN " + NoteColumns.IMAGE + "BLOB DEFAULT NULL");
}
} }

@ -33,6 +33,7 @@ import net.micode.notes.R;
import net.micode.notes.data.Notes.DataColumns; import net.micode.notes.data.Notes.DataColumns;
import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.data.NotesDatabaseHelper.TABLE; import net.micode.notes.data.NotesDatabaseHelper.TABLE;
import net.micode.notes.model.Note;
public class NotesProvider extends ContentProvider { public class NotesProvider extends ContentProvider {
@ -163,6 +164,7 @@ public class NotesProvider extends ContentProvider {
} }
insertedId = dataId = db.insert(TABLE.DATA, null, values); insertedId = dataId = db.insert(TABLE.DATA, null, values);
break; break;
default: default:
throw new IllegalArgumentException("Unknown URI " + uri); throw new IllegalArgumentException("Unknown URI " + uri);
} }

@ -75,6 +75,12 @@ public class Note {
mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());
} }
public void setImage(String key,byte[] image)
{
mNoteDiffValues.put(key,image);
mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED,1);
mNoteDiffValues.put(NoteColumns.MODIFIED_DATE,System.currentTimeMillis());
}
public void setTextData(String key, String value) { public void setTextData(String key, String value) {
mNoteData.setTextData(key, value); mNoteData.setTextData(key, value);

@ -62,6 +62,7 @@ public class WorkingNote {
private NoteSettingChangedListener mNoteSettingStatusListener; private NoteSettingChangedListener mNoteSettingStatusListener;
private byte[] image; private byte[] image;
public boolean isChange=false;
public static final String[] DATA_PROJECTION = new String[] { public static final String[] DATA_PROJECTION = new String[] {
DataColumns.ID, DataColumns.ID,
@ -79,7 +80,8 @@ public class WorkingNote {
NoteColumns.BG_COLOR_ID, NoteColumns.BG_COLOR_ID,
NoteColumns.WIDGET_ID, NoteColumns.WIDGET_ID,
NoteColumns.WIDGET_TYPE, NoteColumns.WIDGET_TYPE,
NoteColumns.MODIFIED_DATE NoteColumns.MODIFIED_DATE,
NoteColumns.IMAGE
}; };
private static final int DATA_ID_COLUMN = 0; private static final int DATA_ID_COLUMN = 0;
@ -101,6 +103,8 @@ public class WorkingNote {
private static final int NOTE_MODIFIED_DATE_COLUMN = 5; private static final int NOTE_MODIFIED_DATE_COLUMN = 5;
private static final int NOTE_IMAGE=6;
// New note construct // New note construct
private WorkingNote(Context context, long folderId) { private WorkingNote(Context context, long folderId) {
mContext = context; mContext = context;
@ -137,6 +141,7 @@ public class WorkingNote {
mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN);
mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN);
mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN);
image=cursor.getBlob(NOTE_IMAGE);
} }
cursor.close(); cursor.close();
} else { } else {
@ -189,7 +194,7 @@ public class WorkingNote {
} }
public synchronized boolean saveNote() { public synchronized boolean saveNote() {
if (isWorthSaving()) {//如果值得保存的话就保存 if (isChange||isWorthSaving()) {//如果值得保存的话就保存
if (!existInDatabase()) {//是否在database中存在 if (!existInDatabase()) {//是否在database中存在
if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) {//创建新的笔记如果创建新的笔记过程中发生异常那么此语句就执行直接返回false if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) {//创建新的笔记如果创建新的笔记过程中发生异常那么此语句就执行直接返回false
Log.e(TAG, "Create new note fail with id:" + mNoteId); Log.e(TAG, "Create new note fail with id:" + mNoteId);
@ -218,8 +223,8 @@ public class WorkingNote {
} }
private boolean isWorthSaving() {//如果当前文件是要进行删除的文件则没有必要保存,不在数据库中也不需要保存,如果内容为空也不用保存,已经在数据库中存在也不需要保存,如果没有改变内容也不需要保存 private boolean isWorthSaving() {//如果当前文件是要进行删除的文件则没有必要保存,不在数据库中也不需要保存,如果内容为空也不用保存,已经在数据库中存在也不需要保存,如果没有改变内容也不需要保存
if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) if ((mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent))
|| (existInDatabase() && !mNote.isLocalModified())) { || (existInDatabase() && !mNote.isLocalModified()))) {
return false; return false;
} else { } else {
return true; return true;
@ -290,6 +295,7 @@ public class WorkingNote {
} }
public void setImage(byte[]image) public void setImage(byte[]image)
{ {
mNote.setImage(DataColumns.IMAGE,image);
this.image=image; this.image=image;
} }

@ -463,7 +463,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen
if(clearSettingState()) {//关闭对应的窗口 if(clearSettingState()) {//关闭对应的窗口
return; return;
} }
saveNote();//保存笔记 saveNote();//保存笔记
super.onBackPressed(); super.onBackPressed();
} }
@ -570,6 +569,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
mWorkingNote.setImage(data.getByteArrayExtra("result")); mWorkingNote.setImage(data.getByteArrayExtra("result"));
mWorkingNote.isChange=true;
} }
} }
@ -692,6 +692,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen
edit.setSelection(length);//设置光标到对应的长度 edit.setSelection(length);//设置光标到对应的长度
} }
public void onEditTextEnter(int index, String text) { public void onEditTextEnter(int index, String text) {
/** /**
* Should not happen, check for debug * Should not happen, check for debug

Loading…
Cancel
Save