更新了加密的部分功能

zhoushiyu_br
PickupRAIN 2 years ago
parent b7600f167f
commit 3b71c3c134

@ -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 ");
}
}

@ -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() {

@ -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;
}

@ -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;
}
}

@ -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);
}
}
}

@ -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);

@ -46,6 +46,12 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/title_alert" />
<!-- <ImageView-->
<!-- android:id="@+id/iv_alert_lock"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="center_vertical"-->
<!-- android:background="@drawable/lock_private" />-->
<TextView
android:id="@+id/tv_alert_date"

@ -52,9 +52,6 @@
<item
android:id="@+id/menu_enter_private_mode"
android:title="Enter private mode"/>
<item
android:id="@+id/menu_exit_private_mode"
android:title="Exit private mode"/>
</menu>
Loading…
Cancel
Save