diff --git a/src/main/assets/font/fs.ttf b/src/main/assets/font/fs.ttf
new file mode 100644
index 0000000..16eb427
Binary files /dev/null and b/src/main/assets/font/fs.ttf differ
diff --git a/src/main/assets/font/fzrjt.TTF b/src/main/assets/font/fzrjt.TTF
new file mode 100644
index 0000000..775623e
Binary files /dev/null and b/src/main/assets/font/fzrjt.TTF differ
diff --git a/src/main/assets/font/fzytk.TTF b/src/main/assets/font/fzytk.TTF
new file mode 100644
index 0000000..45c8c19
Binary files /dev/null and b/src/main/assets/font/fzytk.TTF differ
diff --git a/src/main/assets/font/kt.ttf b/src/main/assets/font/kt.ttf
new file mode 100644
index 0000000..d7c3b90
Binary files /dev/null and b/src/main/assets/font/kt.ttf differ
diff --git a/src/main/assets/font/simhei.ttf b/src/main/assets/font/simhei.ttf
new file mode 100644
index 0000000..5bd4687
Binary files /dev/null and b/src/main/assets/font/simhei.ttf differ
diff --git a/src/main/assets/font/stsong.TTF b/src/main/assets/font/stsong.TTF
new file mode 100644
index 0000000..3870605
Binary files /dev/null and b/src/main/assets/font/stsong.TTF differ
diff --git a/src/main/java/net/micode/notes/ui/ChangeLoginPasswordActivity.java b/src/main/java/net/micode/notes/ui/ChangeLoginPasswordActivity.java
new file mode 100644
index 0000000..6925781
--- /dev/null
+++ b/src/main/java/net/micode/notes/ui/ChangeLoginPasswordActivity.java
@@ -0,0 +1,127 @@
+package net.micode.notes.ui;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.AlertDialog;
+import android.app.PendingIntent;
+import android.app.SearchManager;
+import android.appwidget.AppWidgetManager;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.Paint;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+import android.text.style.BackgroundColorSpan;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.WindowManager;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import net.micode.notes.R;
+import net.micode.notes.data.Notes;
+import net.micode.notes.data.Notes.TextNote;
+import net.micode.notes.model.WorkingNote;
+import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
+import net.micode.notes.tool.DataUtils;
+import net.micode.notes.tool.ResourceParser;
+import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
+import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
+import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
+import net.micode.notes.widget.NoteWidgetProvider_2x;
+import net.micode.notes.widget.NoteWidgetProvider_4x;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+public class ChangeLoginPasswordActivity extends Activity {
+ EditText OldPassword;
+ EditText NewPassword;
+ EditText ReWritePassword;
+ Button Acknowledged;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.change_login_password_activity);
+ getWindow().setSoftInputMode(
+ WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
+ | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+ OldPassword=(EditText) findViewById(R.id.old_password);
+ NewPassword=(EditText) findViewById(R.id.new_password);
+ ReWritePassword=(EditText) findViewById(R.id.ack_password);
+ Acknowledged=(Button)findViewById(R.id.Bt_Acknowledged);
+ Acknowledged.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String old_password = OldPassword.getText().toString();
+ String new_password = NewPassword.getText().toString();
+ String ack_password = ReWritePassword.getText().toString();
+
+ SharedPreferences pref=getSharedPreferences("user management",MODE_PRIVATE);
+
+ String login_password=pref.getString("password","");
+
+ if(old_password.equals("")==true || new_password.equals("")==true || ack_password.equals("")==true) {
+ Toast.makeText(ChangeLoginPasswordActivity.this, "密码不能为空", Toast.LENGTH_SHORT).show();
+ }else if (new_password.equals(ack_password) == false) {
+ Toast.makeText(ChangeLoginPasswordActivity.this, "新建密码与重复密码不匹配,请重新输入密码", Toast.LENGTH_SHORT).show();
+ ReWritePassword.setText("");
+ }else if(old_password.equals(login_password) == false){
+ Toast.makeText(ChangeLoginPasswordActivity.this, "原有密码错误,请重新输入密码", Toast.LENGTH_SHORT).show();
+ OldPassword.setText("");
+ }
+ else if (new_password.equals(ack_password) == true && old_password.equals(login_password) == true){
+ SharedPreferences.Editor editor=getSharedPreferences("user management", MODE_PRIVATE).edit();
+ editor.putString("password",new_password);
+ editor.apply();
+ Toast.makeText(ChangeLoginPasswordActivity.this, "修改密码成功", Toast.LENGTH_SHORT).show();
+ Intent intent=new Intent(ChangeLoginPasswordActivity.this, LoginActivity.class);
+ startActivity(intent);
+ finish();
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onBackPressed() {
+ Intent intent=new Intent(ChangeLoginPasswordActivity.this, LoginActivity.class);
+ startActivity(intent);
+ finish();
+ }
+}
+
diff --git a/src/main/java/net/micode/notes/ui/LoginActivity.java b/src/main/java/net/micode/notes/ui/LoginActivity.java
new file mode 100644
index 0000000..caae81f
--- /dev/null
+++ b/src/main/java/net/micode/notes/ui/LoginActivity.java
@@ -0,0 +1,163 @@
+package net.micode.notes.ui;
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.AlertDialog;
+import android.app.PendingIntent;
+import android.app.ProgressDialog;
+import android.app.SearchManager;
+import android.appwidget.AppWidgetManager;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.Paint;
+import android.os.Bundle;
+import android.os.Handler;
+import android.preference.PreferenceManager;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+import android.text.style.BackgroundColorSpan;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import net.micode.notes.R;
+import net.micode.notes.data.Notes;
+import net.micode.notes.data.Notes.TextNote;
+import net.micode.notes.model.WorkingNote;
+import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
+import net.micode.notes.tool.DataUtils;
+import net.micode.notes.tool.ResourceParser;
+import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
+import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
+import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
+import net.micode.notes.widget.NoteWidgetProvider_2x;
+import net.micode.notes.widget.NoteWidgetProvider_4x;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+public class LoginActivity extends Activity{
+ private EditText accountEdit;
+
+ private EditText passwordEdit;
+
+ private Button login;
+
+ private Button cancel;
+
+ private Button change;
+
+ private long last_login_time = 0 ;
+
+ public static final long MAX_LOGIN_TIME = 9999999;
+
+
+
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState){
+ super.onCreate(savedInstanceState);
+
+ SharedPreferences pref=getSharedPreferences("user management",MODE_PRIVATE);
+ boolean user_boolean = pref.getBoolean("user",false);//获取用户是否设置了密码
+ if(!user_boolean) //User_boolean = false时,(没有设置密码),直接跳转到便签主界面
+ {
+ SharedPreferences.Editor editor=getSharedPreferences("user management", MODE_PRIVATE).edit();
+ editor.putString("password","123456");
+ editor.putBoolean("user",true);
+ editor.apply();
+ }
+
+ SharedPreferences login_time_get = getSharedPreferences("login time",MODE_PRIVATE);
+ boolean is_first_login = login_time_get.getBoolean("is_first_login",false);
+
+ setContentView(R.layout.login_activity);
+ accountEdit = (EditText) findViewById(R.id.account);
+ passwordEdit = (EditText) findViewById(R.id.password);
+ login = (Button) findViewById(R.id.login);
+ cancel = (Button) findViewById(R.id.cancel);
+ change = (Button) findViewById(R.id.change_password);
+
+
+ long current_time = System.currentTimeMillis();
+
+ cancel.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ Toast.makeText(LoginActivity.this, R.string.app_already_quit, Toast.LENGTH_LONG).show();
+ finish();
+ }
+ });
+
+ Long current_login_time = login_time_get.getLong("current login time",0);
+ if((is_first_login)&&(current_time - current_login_time <= MAX_LOGIN_TIME)){
+ SharedPreferences.Editor editor=getSharedPreferences("login time", MODE_PRIVATE).edit();
+ editor.putLong("current login time",System.currentTimeMillis());
+ editor.apply();
+ Intent intent = new Intent(LoginActivity.this,NotesListActivity.class);
+ startActivity(intent);
+ finish();
+ }
+
+ else{
+ if(!is_first_login){
+ SharedPreferences.Editor editor=getSharedPreferences("login time", MODE_PRIVATE).edit();
+ editor.putLong("current login time",System.currentTimeMillis());
+ editor.putBoolean("is_first_login",true);
+ editor.apply();
+ }
+
+ login.setOnClickListener(new View.OnClickListener(){
+ public void onClick(View v) {
+ String account = accountEdit.getText().toString();
+ String password = passwordEdit.getText().toString();
+
+ SharedPreferences pref=getSharedPreferences("user management",MODE_PRIVATE);
+ String share_password=pref.getString("password","");
+
+ if(account.equals("hei") && password.equals(share_password)){
+ ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this);
+ progressDialog.setTitle(R.string.Loading);
+ progressDialog.setMessage("Loading...");
+ progressDialog.setCancelable(true);
+ progressDialog.show();;
+ Intent intent = new Intent(LoginActivity.this,NotesListActivity.class);
+ startActivity(intent);
+ finish();
+ }else {
+ Toast.makeText(LoginActivity.this, R.string.invalid,Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ change.setOnClickListener(new View.OnClickListener(){
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(LoginActivity.this,ChangeLoginPasswordActivity.class);
+ startActivity(intent);
+ finish();
+ }
+ });
+ }
+ }
+}
diff --git a/src/main/java/net/micode/notes/ui/LoginView.java b/src/main/java/net/micode/notes/ui/LoginView.java
new file mode 100644
index 0000000..deca847
--- /dev/null
+++ b/src/main/java/net/micode/notes/ui/LoginView.java
@@ -0,0 +1,76 @@
+package net.micode.notes.ui;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.AlertDialog;
+import android.app.PendingIntent;
+import android.app.SearchManager;
+import android.appwidget.AppWidgetManager;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.Paint;
+import android.os.Bundle;
+import android.os.Handler;
+import android.preference.PreferenceManager;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+import android.text.style.BackgroundColorSpan;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.WindowManager;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import net.micode.notes.R;
+import net.micode.notes.data.Notes;
+import net.micode.notes.data.Notes.TextNote;
+import net.micode.notes.model.WorkingNote;
+import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
+import net.micode.notes.tool.DataUtils;
+import net.micode.notes.tool.ResourceParser;
+import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
+import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
+import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
+import net.micode.notes.widget.NoteWidgetProvider_2x;
+import net.micode.notes.widget.NoteWidgetProvider_4x;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+public class LoginView extends Activity
+{
+ Handler mHandler=new Handler();
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.login_view);
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Intent intent = new Intent(LoginView.this, LoginActivity.class);
+ startActivity(intent);
+ finish();
+ }
+ },2000);
+ }
+}
diff --git a/src/main/res/drawable-hdpi/login_photo.png b/src/main/res/drawable-hdpi/login_photo.png
new file mode 100644
index 0000000..bb6b8c9
Binary files /dev/null and b/src/main/res/drawable-hdpi/login_photo.png differ
diff --git a/src/main/res/drawable-hdpi/login_view_photo.png b/src/main/res/drawable-hdpi/login_view_photo.png
new file mode 100644
index 0000000..c8897ea
Binary files /dev/null and b/src/main/res/drawable-hdpi/login_view_photo.png differ
diff --git a/src/main/res/drawable-hdpi/login_view_photo_2.jpg b/src/main/res/drawable-hdpi/login_view_photo_2.jpg
new file mode 100644
index 0000000..9447402
Binary files /dev/null and b/src/main/res/drawable-hdpi/login_view_photo_2.jpg differ
diff --git a/src/main/res/drawable-hdpi/note_background_photo_duck.jpg b/src/main/res/drawable-hdpi/note_background_photo_duck.jpg
new file mode 100644
index 0000000..b6f1ca3
Binary files /dev/null and b/src/main/res/drawable-hdpi/note_background_photo_duck.jpg differ
diff --git a/src/main/res/drawable-hdpi/note_background_photo_wangyi.png b/src/main/res/drawable-hdpi/note_background_photo_wangyi.png
new file mode 100644
index 0000000..8aadb9f
Binary files /dev/null and b/src/main/res/drawable-hdpi/note_background_photo_wangyi.png differ
diff --git a/src/main/res/drawable-hdpi/note_bg_photo_wangyi.png b/src/main/res/drawable-hdpi/note_bg_photo_wangyi.png
new file mode 100644
index 0000000..3af7855
Binary files /dev/null and b/src/main/res/drawable-hdpi/note_bg_photo_wangyi.png differ
diff --git a/src/main/res/drawable-hdpi/note_edit_color_selector_panel_test.png b/src/main/res/drawable-hdpi/note_edit_color_selector_panel_test.png
new file mode 100644
index 0000000..4a58b67
Binary files /dev/null and b/src/main/res/drawable-hdpi/note_edit_color_selector_panel_test.png differ
diff --git a/src/main/res/layout/change_login_password_activity.xml b/src/main/res/layout/change_login_password_activity.xml
new file mode 100644
index 0000000..b9e854f
--- /dev/null
+++ b/src/main/res/layout/change_login_password_activity.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/res/layout/login_activity.xml b/src/main/res/layout/login_activity.xml
new file mode 100644
index 0000000..320b0c0
--- /dev/null
+++ b/src/main/res/layout/login_activity.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/res/layout/login_view.xml b/src/main/res/layout/login_view.xml
new file mode 100644
index 0000000..0c1c3b4
--- /dev/null
+++ b/src/main/res/layout/login_view.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/res/layout/model_insert.xml b/src/main/res/layout/model_insert.xml
new file mode 100644
index 0000000..fa98635
--- /dev/null
+++ b/src/main/res/layout/model_insert.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
\ No newline at end of file