diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java
index cc67c31..4e1fa12 100644
--- a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java
+++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java
@@ -60,7 +60,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," +
NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," +
- NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0," + NoteColumns.PASSWORD + "TEXT NOT NULL DEFAULT 1" +
+ NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.PASSWORD + " TEXT DEFAULT NULL " +
")";
private static final String CREATE_DATA_TABLE_SQL =
@@ -365,7 +366,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
}
private void upgradeToV5(SQLiteDatabase db){
db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.PASSWORD
- + " TEXT NOT NULL DEFAULT 1");
+ + " TEXT DEFAULT NULL ");
}
}
diff --git a/src/main/java/net/micode/notes/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java
index 1037bf1..7733b4b 100644
--- a/src/main/java/net/micode/notes/model/WorkingNote.java
+++ b/src/main/java/net/micode/notes/model/WorkingNote.java
@@ -75,9 +75,9 @@ public class WorkingNote {
private Context mContext;
public boolean PRIVATE_MODE = false;
- private static final String TAG = "WorkingNote";//定义为静态变量,保证不能再被更改。防止数据出现异常
+ private static final String TAG = "WorkingNote"; //定义为静态变量,保证不能再被更改。防止数据出现异常
- private boolean mIsDeleted;//定义一个布尔变量,用来保存是否要被删除。通过查看用法,发现在后面保存|修改的时候要进行判断。
+ private boolean mIsDeleted; //定义一个布尔变量,用来保存是否要被删除。通过查看用法,发现在后面保存|修改的时候要进行判断。
private NoteSettingChangedListener mNoteSettingStatusListener;//定义了一个接口,具体是在NoteEditActivities中实现,实现对于便签是否修改的监听
/**
@@ -206,6 +206,7 @@ public class WorkingNote {
mContent = cursor.getString(DATA_CONTENT_COLUMN);
mMode = cursor.getInt(DATA_MODE_COLUMN);
mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN));
+
} else if (DataConstants.CALL_NOTE.equals(type)) {
mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN));
} else {
@@ -354,7 +355,8 @@ public class WorkingNote {
mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER));
}
public void setPassword(String password){
- mNote.setNoteValue(NoteColumns.PASSWORD,String.valueOf(password));
+// mPassword=password;
+ mNote.setNoteValue(NoteColumns.PASSWORD,password);
}
public boolean hasClockAlert() {
diff --git a/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java
index 720dd74..99f2b4a 100644
--- a/src/main/java/net/micode/notes/ui/NoteEditActivity.java
+++ b/src/main/java/net/micode/notes/ui/NoteEditActivity.java
@@ -289,8 +289,43 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME
| DateUtils.FORMAT_SHOW_YEAR));
-// mPasword=mWorkingNote.getPassword();
-// if(mPassword)
+// String mPassword=mWorkingNote.getPassword();
+// if (mWorkingNote.getPassword()!=null){
+// final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+// View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null);
+// //编辑Text
+// final EditText etName = (EditText) view.findViewById(R.id.et_foler_name);
+// etName.setText("");
+// etName.setHint("请输入密码");
+// builder.setTitle("密码检验");
+// builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+// @Override
+// public void onClick(DialogInterface dialog, int which) {
+// //获取输入的字符串
+// String password = etName.getText().toString();
+// Log.d("mPassword: ", mPassword);
+// Log.d("password: ", password);
+// //判断密码正确性
+// if (!password.equals(mPassword)) {
+// Log.d("密码不正确,正确密码是:",mPassword);
+// dialog.dismiss();
+// onBackPressed();
+// }
+// }
+// });
+// builder.setNegativeButton("cancel", new DialogInterface.OnClickListener(){
+// @Override
+// public void onClick(DialogInterface dialog, int which) {
+// dialog.dismiss();
+// onBackPressed();
+// }
+// });
+// final Dialog dialog = builder.setView(view).show();
+// dialog.show();
+// }
+// else{
+// Toast.makeText(NoteEditActivity.this,"还没有设置密码", Toast.LENGTH_SHORT).show();
+// }
/**
* TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker
@@ -545,33 +580,38 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mWorkingNote.setAlertDate(0, false);
}
else if (itemId == R.id.menu_enter_private_mode){
- final AlertDialog.Builder builder = new AlertDialog.Builder(this);
- View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text,null);
- final EditText etName = (EditText)view.findViewById(R.id.et_foler_name);
- etName.setText("");
- etName.setHint("请输入密码");
- builder.setTitle("为便签设置新密码");
- builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- String password = etName.getText().toString();
- mWorkingNote.setPassword(password);
- Toast.makeText(NoteEditActivity.this,"密码设置成功", Toast.LENGTH_SHORT).show();
- InputMethodManager inputMethodManager =(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0);
- dialog.dismiss();
- }
- });
- builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- InputMethodManager inputMethodManager = (InputMethodManager)
- getSystemService(Context.INPUT_METHOD_SERVICE);
- inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0);
- }
- });
- final Dialog dialog = builder.setView(view).show();
- }
+ if(mWorkingNote.getPassword()==null){
+ final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text,null);
+ final EditText etName = (EditText)view.findViewById(R.id.et_foler_name);
+ etName.setText("");
+ etName.setHint("请输入密码");
+ builder.setTitle("为便签设置新密码");
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ String password = etName.getText().toString();
+ mWorkingNote.setPassword(password);
+ if ( mWorkingNote.getPassword() != null ){
+ Toast.makeText(NoteEditActivity.this,"密码设置成功", Toast.LENGTH_SHORT).show();
+ }
+ InputMethodManager inputMethodManager =(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0);
+ dialog.dismiss();
+ }
+ });
+ builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ InputMethodManager inputMethodManager = (InputMethodManager)
+ getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0);
+ }
+ });
+ final Dialog dialog = builder.setView(view).show();
+ }
+ }
+
return true;
}
diff --git a/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java
index 436d009..17cc5d4 100644
--- a/src/main/java/net/micode/notes/ui/NoteItemData.java
+++ b/src/main/java/net/micode/notes/ui/NoteItemData.java
@@ -39,8 +39,7 @@ public class NoteItemData {
NoteColumns.SNIPPET,
NoteColumns.TYPE,
NoteColumns.WIDGET_ID,
- NoteColumns.WIDGET_TYPE,
-// NoteColumns.PASSWORD,
+ NoteColumns.WIDGET_TYPE, NoteColumns.PASSWORD
};
private static final int ID_COLUMN = 0;
@@ -55,7 +54,7 @@ public class NoteItemData {
private static final int TYPE_COLUMN = 9;
private static final int WIDGET_ID_COLUMN = 10;
private static final int WIDGET_TYPE_COLUMN = 11;
-// private static final int PASSWORD_COLUMN = 12;//这里事实上还在存疑,时候需要增加一个列用于索引。
+ private static final int PASSWORD_COLUMN = 12;//这里事实上还在存疑,时候需要增加一个列用于索引。
private long mId;
private long mAlertDate;
@@ -72,7 +71,7 @@ public class NoteItemData {
private String mName;
private String mPhoneNumber;
-// private String mPassword;
+ private String mPassword;
private boolean mIsLastItem;
private boolean mIsFirstItem;
@@ -95,7 +94,7 @@ public class NoteItemData {
mType = cursor.getInt(TYPE_COLUMN);
mWidgetId = cursor.getInt(WIDGET_ID_COLUMN);
mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN);
-// mPassword =cursor.getString(PASSWORD_COLUMN);
+ mPassword =cursor.getString(PASSWORD_COLUMN);
mPhoneNumber = "";
@@ -203,6 +202,9 @@ public class NoteItemData {
public int getType() {
return mType;
}
+ public String getmPassword(){
+ return mPassword;
+ }
public int getWidgetType() {
return mWidgetType;
@@ -227,4 +229,11 @@ public class NoteItemData {
public static int getNoteType(Cursor cursor) {
return cursor.getInt(TYPE_COLUMN);
}
+
+ public boolean hasPassword(){
+ if(mPassword.length()!=0&&mPassword!=null){
+ return true;
+ }
+ return false;
+ }
}
diff --git a/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java
index 6db3761..6d060fe 100644
--- a/src/main/java/net/micode/notes/ui/NotesListActivity.java
+++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java
@@ -877,7 +877,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
|| item.getType() == Notes.TYPE_SYSTEM) {
openFolder(item);
} else if (item.getType() == Notes.TYPE_NOTE) {
- openNode(item);
+ testNode(item);
} else {
Log.e(TAG, "Wrong note type in NOTE_LIST");
}
@@ -885,7 +885,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
case SUB_FOLDER:
case CALL_RECORD_FOLDER:
if (item.getType() == Notes.TYPE_NOTE) {
- openNode(item);
+ testNode(item);
+// openNode(item);
} else {
Log.e(TAG, "Wrong note type in SUB_FOLDER");
}
@@ -932,4 +933,70 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
return false;
}
+ public void testNode(final NoteItemData item){
+ if (!item.getmPassword().equals("1"))//判断是否有密码,如果没有密码,直接打开即可
+// if(item.getmPassword()!=null && !item.getmPassword().equals(""))
+ {
+ final AlertDialog.Builder builder = new AlertDialog.Builder(this);//初始化对话框
+ builder.setTitle("验证密码");
+ View view = LayoutInflater.from(this).inflate(R.layout.pwd, null);//加载对话框的布局文件
+ final EditText editPwd = (EditText) view.findViewById(R.id.set_password);//初始化对话框里的文本对象
+ editPwd.setHint("输入隐私密码");
+ builder.setPositiveButton(android.R.string.ok, null);//确定按钮
+ builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {//取消按钮
+ hideSoftInput(editPwd);//隐藏软键盘
+ }
+ });
+ showSoftInput();//显示软键盘
+ final Dialog dialog = builder.setView(view).show();//显示出来
+
+ final Button positive = (Button)dialog.findViewById(android.R.id.button1);//加载确定按钮布局文件
+ positive.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {//设置确定按钮的接收器
+ hideSoftInput(editPwd);//点击确定后收起软键盘
+ String Password = editPwd.getText().toString();//文本框里的输入值
+ String mPassword=item.getmPassword();
+ if (TextUtils.isEmpty(Password) || Password.equals(mPassword)) {//输入不为空
+// Toast.makeText(getApplicationContext(), Password, Toast.LENGTH_SHORT).show();
+ Toast.makeText(NotesListActivity.this,"密码正确", Toast.LENGTH_SHORT).show();
+// inputPwd = Password;
+ openNode(item);
+ dialog.dismiss();//撤销对话框
+ }else{
+ Toast.makeText(NotesListActivity.this,"密码错误", Toast.LENGTH_SHORT).show();
+ editPwd.setText("");
+ dialog.show();
+ }
+
+
+
+ }
+
+ });
+ if (TextUtils.isEmpty(editPwd.getText())) {//如果文件夹名称为空,则不能选择确定按钮
+ positive.setEnabled(false);
+ }
+
+ editPwd.addTextChangedListener(new TextWatcher() {//添加文本更改监听器,即判断文本更改状态
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {//文本更改之前(未完成)
+ // TODO Auto-generated method stub
+ }
+
+ public void onTextChanged(CharSequence s, int start, int before, int count) {//当前文本改变触发,
+ if (TextUtils.isEmpty(editPwd.getText())) {//文本为空确定按键不可用,不为空则可用
+ positive.setEnabled(false);
+ } else {
+ positive.setEnabled(true);
+ }
+ }
+ public void afterTextChanged(Editable s) {//文本修改之后(未完成)
+ // TODO Auto-generated method stub
+ }
+ });
+ } else {
+ openNode(item);
+ }
+ }
}
+
diff --git a/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/main/java/net/micode/notes/ui/NotesListItem.java
index 72565d9..f0b64a5 100644
--- a/src/main/java/net/micode/notes/ui/NotesListItem.java
+++ b/src/main/java/net/micode/notes/ui/NotesListItem.java
@@ -32,6 +32,7 @@ import net.micode.notes.tool.ResourceParser.NoteItemBgResources;
public class NotesListItem extends LinearLayout {
private ImageView mAlert;
+ private ImageView mLock;
private TextView mTitle;
private TextView mTime;
private TextView mCallName;
@@ -86,7 +87,14 @@ public class NotesListItem extends LinearLayout {
mAlert.setVisibility(View.GONE);
// if(data.has)
} else {
- mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
+ if("1".equals(data.getmPassword())){
+ mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
+ }else {
+
+ mTitle.setText("便签已加密");
+ }
+//
+// mTitle.setText("Jiami");
if (data.hasAlert()) {
mAlert.setImageResource(R.drawable.clock);
mAlert.setVisibility(View.VISIBLE);
diff --git a/src/main/res/layout/note_edit.xml b/src/main/res/layout/note_edit.xml
index 10b2aa7..d6fcae5 100644
--- a/src/main/res/layout/note_edit.xml
+++ b/src/main/res/layout/note_edit.xml
@@ -46,6 +46,12 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/title_alert" />
+
+
+
+
+
+
-
\ No newline at end of file