From 6c1c997620dde49c9beaa910550ccc74065ce1fe Mon Sep 17 00:00:00 2001 From: Kk-juejuezi <253292942@qq.com> Date: Thu, 20 Oct 2022 08:08:57 +0800 Subject: [PATCH] one --- .../{ => net/micode/notes}/data/Contact.java | 0 .../{ => net/micode/notes}/data/Notes.java | 7 +- .../notes}/data/NotesDatabaseHelper.java | 24 ++- .../micode/notes}/data/NotesProvider.java | 0 .../micode/notes}/gtask/data/MetaData.java | 0 .../notes}/gtask/data/MetaData.java.bak | 0 .../micode/notes}/gtask/data/Node.java | 0 .../micode/notes}/gtask/data/SqlData.java | 0 .../micode/notes}/gtask/data/SqlNote.java | 0 .../micode/notes}/gtask/data/Task.java | 0 .../micode/notes}/gtask/data/TaskList.java | 0 .../exception/ActionFailureException.java | 0 .../exception/NetworkFailureException.java | 0 .../notes}/gtask/remote/GTaskASyncTask.java | 0 .../notes}/gtask/remote/GTaskClient.java | 0 .../notes}/gtask/remote/GTaskManager.java | 0 .../notes}/gtask/remote/GTaskSyncService.java | 0 .../{ => net/micode/notes}/model/Note.java | 0 .../micode/notes}/model/WorkingNote.java | 25 ++- .../micode/notes}/tool/BackupUtils.java | 0 .../micode/notes}/tool/DataUtils.java | 0 .../micode/notes}/tool/GTaskStringUtils.java | 0 .../micode/notes}/tool/ResourceParser.java | 0 .../micode/notes}/ui/AlarmAlertActivity.java | 0 .../micode/notes}/ui/AlarmInitReceiver.java | 0 .../notes}/ui/AlarmInitReceiver.java.bak | 0 .../micode/notes}/ui/AlarmReceiver.java | 0 .../micode/notes}/ui/AlarmReceiver.java.bak | 0 .../micode/notes}/ui/DateTimePicker.java | 0 .../micode/notes}/ui/DateTimePicker.java.bak | 0 .../notes}/ui/DateTimePickerDialog.java | 0 .../micode/notes}/ui/DropdownMenu.java | 0 .../micode/notes}/ui/FoldersListAdapter.java | 0 .../micode/notes}/ui/NoteEditActivity.java | 147 ++++++++---------- .../notes}/ui/NoteEditActivity.java.bak | 0 .../micode/notes}/ui/NoteEditText.java | 0 .../micode/notes}/ui/NoteItemData.java | 16 +- .../micode/notes}/ui/NotesListActivity.java | 121 +++++++++----- .../micode/notes}/ui/NotesListAdapter.java | 0 .../micode/notes}/ui/NotesListItem.java | 15 +- .../notes}/ui/NotesPreferenceActivity.java | 0 .../notes}/widget/NoteWidgetProvider.java | 0 .../notes}/widget/NoteWidgetProvider_2x.java | 0 .../notes}/widget/NoteWidgetProvider_4x.java | 0 src/main/res/drawable-hdpi/laba.png | Bin 1644 -> 0 bytes src/main/res/drawable-hdpi/title_locker.png | Bin 0 -> 958 bytes src/main/res/layout/buttom.xml | 19 +++ src/main/res/layout/note_edit.xml | 43 ++--- src/main/res/layout/note_item.xml | 6 + src/main/res/menu/note_edit.xml | 15 +- src/main/res/values/strings.xml | 8 +- 51 files changed, 286 insertions(+), 160 deletions(-) rename src/main/java/{ => net/micode/notes}/data/Contact.java (100%) rename src/main/java/{ => net/micode/notes}/data/Notes.java (97%) rename src/main/java/{ => net/micode/notes}/data/NotesDatabaseHelper.java (95%) rename src/main/java/{ => net/micode/notes}/data/NotesProvider.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/MetaData.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/MetaData.java.bak (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/Node.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/SqlData.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/SqlNote.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/Task.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/data/TaskList.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/exception/ActionFailureException.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/exception/NetworkFailureException.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/remote/GTaskASyncTask.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/remote/GTaskClient.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/remote/GTaskManager.java (100%) rename src/main/java/{ => net/micode/notes}/gtask/remote/GTaskSyncService.java (100%) rename src/main/java/{ => net/micode/notes}/model/Note.java (100%) rename src/main/java/{ => net/micode/notes}/model/WorkingNote.java (94%) rename src/main/java/{ => net/micode/notes}/tool/BackupUtils.java (100%) rename src/main/java/{ => net/micode/notes}/tool/DataUtils.java (100%) rename src/main/java/{ => net/micode/notes}/tool/GTaskStringUtils.java (100%) rename src/main/java/{ => net/micode/notes}/tool/ResourceParser.java (100%) rename src/main/java/{ => net/micode/notes}/ui/AlarmAlertActivity.java (100%) rename src/main/java/{ => net/micode/notes}/ui/AlarmInitReceiver.java (100%) rename src/main/java/{ => net/micode/notes}/ui/AlarmInitReceiver.java.bak (100%) rename src/main/java/{ => net/micode/notes}/ui/AlarmReceiver.java (100%) rename src/main/java/{ => net/micode/notes}/ui/AlarmReceiver.java.bak (100%) rename src/main/java/{ => net/micode/notes}/ui/DateTimePicker.java (100%) rename src/main/java/{ => net/micode/notes}/ui/DateTimePicker.java.bak (100%) rename src/main/java/{ => net/micode/notes}/ui/DateTimePickerDialog.java (100%) rename src/main/java/{ => net/micode/notes}/ui/DropdownMenu.java (100%) rename src/main/java/{ => net/micode/notes}/ui/FoldersListAdapter.java (100%) rename src/main/java/{ => net/micode/notes}/ui/NoteEditActivity.java (91%) rename src/main/java/{ => net/micode/notes}/ui/NoteEditActivity.java.bak (100%) rename src/main/java/{ => net/micode/notes}/ui/NoteEditText.java (100%) rename src/main/java/{ => net/micode/notes}/ui/NoteItemData.java (93%) rename src/main/java/{ => net/micode/notes}/ui/NotesListActivity.java (89%) rename src/main/java/{ => net/micode/notes}/ui/NotesListAdapter.java (100%) rename src/main/java/{ => net/micode/notes}/ui/NotesListItem.java (93%) rename src/main/java/{ => net/micode/notes}/ui/NotesPreferenceActivity.java (100%) rename src/main/java/{ => net/micode/notes}/widget/NoteWidgetProvider.java (100%) rename src/main/java/{ => net/micode/notes}/widget/NoteWidgetProvider_2x.java (100%) rename src/main/java/{ => net/micode/notes}/widget/NoteWidgetProvider_4x.java (100%) delete mode 100644 src/main/res/drawable-hdpi/laba.png create mode 100644 src/main/res/drawable-hdpi/title_locker.png create mode 100644 src/main/res/layout/buttom.xml diff --git a/src/main/java/data/Contact.java b/src/main/java/net/micode/notes/data/Contact.java similarity index 100% rename from src/main/java/data/Contact.java rename to src/main/java/net/micode/notes/data/Contact.java diff --git a/src/main/java/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java similarity index 97% rename from src/main/java/data/Notes.java rename to src/main/java/net/micode/notes/data/Notes.java index fb90c63..a15bf19 100644 --- a/src/main/java/data/Notes.java +++ b/src/main/java/net/micode/notes/data/Notes.java @@ -16,7 +16,6 @@ package net.micode.notes.data; -import android.content.ContentUris; import android.net.Uri; // Notes 类中定义了很多常量,这些常量大多是int型和string型 public class Notes { @@ -193,6 +192,12 @@ AUTHORITY + "/data");//定义查找数据的指针。 *

Type : INTEGER (long)

*/ public static final String VERSION = "version"; + /** + *passwored + * + */ + public static final String PASSWORD = "set_password";//设置密码的什么东西啊? + public static final String TAG_PASSWORD = "set_tag"; }//这些常量主要是定义便签的属性的。 // 定义DataColumns的常量,用于后面创建数据库的表头 diff --git a/src/main/java/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java similarity index 95% rename from src/main/java/data/NotesDatabaseHelper.java rename to src/main/java/net/micode/notes/data/NotesDatabaseHelper.java index 5761f90..274458b 100644 --- a/src/main/java/data/NotesDatabaseHelper.java +++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -60,7 +60,9 @@ 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.VERSION + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.PASSWORD + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.TAG_PASSWORD + " TEXT NOT NULL DEFAULT ''" + ")";//数据库中需要存储的项目的名称,就相当于创建一个表格的表头的内容。 private static final String CREATE_DATA_TABLE_SQL = @@ -325,6 +327,16 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { oldVersion++; } + if(oldVersion == 4){ + upgradeToV5(db); + oldVersion++; + } + + if(oldVersion == 5){ + upgradeToV6(db); + oldVersion++; + } + if (reCreateTriggers) { reCreateNoteTableTriggers(db); reCreateDataTableTriggers(db); @@ -362,4 +374,14 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0"); }//更新到V4版本,但是不知道V2、V3、V4是什么意思 + + private void upgradeToV5(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.PASSWORD + + " INTEGER NOT NULL DEFAULT 0"); + } + + private void upgradeToV6(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.TAG_PASSWORD + + " INTEGER NOT NULL DEFAULT 0"); + } } diff --git a/src/main/java/data/NotesProvider.java b/src/main/java/net/micode/notes/data/NotesProvider.java similarity index 100% rename from src/main/java/data/NotesProvider.java rename to src/main/java/net/micode/notes/data/NotesProvider.java diff --git a/src/main/java/gtask/data/MetaData.java b/src/main/java/net/micode/notes/gtask/data/MetaData.java similarity index 100% rename from src/main/java/gtask/data/MetaData.java rename to src/main/java/net/micode/notes/gtask/data/MetaData.java diff --git a/src/main/java/gtask/data/MetaData.java.bak b/src/main/java/net/micode/notes/gtask/data/MetaData.java.bak similarity index 100% rename from src/main/java/gtask/data/MetaData.java.bak rename to src/main/java/net/micode/notes/gtask/data/MetaData.java.bak diff --git a/src/main/java/gtask/data/Node.java b/src/main/java/net/micode/notes/gtask/data/Node.java similarity index 100% rename from src/main/java/gtask/data/Node.java rename to src/main/java/net/micode/notes/gtask/data/Node.java diff --git a/src/main/java/gtask/data/SqlData.java b/src/main/java/net/micode/notes/gtask/data/SqlData.java similarity index 100% rename from src/main/java/gtask/data/SqlData.java rename to src/main/java/net/micode/notes/gtask/data/SqlData.java diff --git a/src/main/java/gtask/data/SqlNote.java b/src/main/java/net/micode/notes/gtask/data/SqlNote.java similarity index 100% rename from src/main/java/gtask/data/SqlNote.java rename to src/main/java/net/micode/notes/gtask/data/SqlNote.java diff --git a/src/main/java/gtask/data/Task.java b/src/main/java/net/micode/notes/gtask/data/Task.java similarity index 100% rename from src/main/java/gtask/data/Task.java rename to src/main/java/net/micode/notes/gtask/data/Task.java diff --git a/src/main/java/gtask/data/TaskList.java b/src/main/java/net/micode/notes/gtask/data/TaskList.java similarity index 100% rename from src/main/java/gtask/data/TaskList.java rename to src/main/java/net/micode/notes/gtask/data/TaskList.java diff --git a/src/main/java/gtask/exception/ActionFailureException.java b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java similarity index 100% rename from src/main/java/gtask/exception/ActionFailureException.java rename to src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java diff --git a/src/main/java/gtask/exception/NetworkFailureException.java b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java similarity index 100% rename from src/main/java/gtask/exception/NetworkFailureException.java rename to src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java diff --git a/src/main/java/gtask/remote/GTaskASyncTask.java b/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java similarity index 100% rename from src/main/java/gtask/remote/GTaskASyncTask.java rename to src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java diff --git a/src/main/java/gtask/remote/GTaskClient.java b/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java similarity index 100% rename from src/main/java/gtask/remote/GTaskClient.java rename to src/main/java/net/micode/notes/gtask/remote/GTaskClient.java diff --git a/src/main/java/gtask/remote/GTaskManager.java b/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java similarity index 100% rename from src/main/java/gtask/remote/GTaskManager.java rename to src/main/java/net/micode/notes/gtask/remote/GTaskManager.java diff --git a/src/main/java/gtask/remote/GTaskSyncService.java b/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java similarity index 100% rename from src/main/java/gtask/remote/GTaskSyncService.java rename to src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java diff --git a/src/main/java/model/Note.java b/src/main/java/net/micode/notes/model/Note.java similarity index 100% rename from src/main/java/model/Note.java rename to src/main/java/net/micode/notes/model/Note.java diff --git a/src/main/java/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java similarity index 94% rename from src/main/java/model/WorkingNote.java rename to src/main/java/net/micode/notes/model/WorkingNote.java index 0886c78..637da5b 100644 --- a/src/main/java/model/WorkingNote.java +++ b/src/main/java/net/micode/notes/model/WorkingNote.java @@ -40,6 +40,9 @@ public class WorkingNote { // Note content private String mContent; // Note mode + private String mPassword = ""; + private String mTag = ""; + //note password,initial = 0 private int mMode; private long mAlertDate; @@ -80,7 +83,9 @@ public class WorkingNote { NoteColumns.BG_COLOR_ID, NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, - NoteColumns.MODIFIED_DATE + NoteColumns.MODIFIED_DATE, + NoteColumns.PASSWORD, + NoteColumns.TAG_PASSWORD }; private static final int DATA_ID_COLUMN = 0; @@ -103,6 +108,10 @@ public class WorkingNote { private static final int NOTE_MODIFIED_DATE_COLUMN = 5; + private static final int NOTE_PASSWORD_COLUMN = 6; + + private static final int NOTE_TAG_PASSWORD_COLUMN = 7; + // New note construct public WorkingNote(Context context, long folderId) { mContext = context; @@ -143,6 +152,8 @@ public class WorkingNote { mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); + mPassword = cursor.getString(NOTE_PASSWORD_COLUMN); + mTag = cursor.getString(NOTE_TAG_PASSWORD_COLUMN); } cursor.close(); // 若不存在,报错 @@ -418,4 +429,16 @@ public class WorkingNote { */ void onCheckListModeChanged(int oldMode, int newMode); } + + /**设置便签的密码 + * + * @param password 访问密码 + */ + public void setPassword(String password,String tag){ + mPassword = password; + mTag = tag; + mNote.setNoteValue(NoteColumns.PASSWORD,String.valueOf(mPassword)); + mNote.setNoteValue(NoteColumns.TAG_PASSWORD,String.valueOf(mTag)); + } + } diff --git a/src/main/java/tool/BackupUtils.java b/src/main/java/net/micode/notes/tool/BackupUtils.java similarity index 100% rename from src/main/java/tool/BackupUtils.java rename to src/main/java/net/micode/notes/tool/BackupUtils.java diff --git a/src/main/java/tool/DataUtils.java b/src/main/java/net/micode/notes/tool/DataUtils.java similarity index 100% rename from src/main/java/tool/DataUtils.java rename to src/main/java/net/micode/notes/tool/DataUtils.java diff --git a/src/main/java/tool/GTaskStringUtils.java b/src/main/java/net/micode/notes/tool/GTaskStringUtils.java similarity index 100% rename from src/main/java/tool/GTaskStringUtils.java rename to src/main/java/net/micode/notes/tool/GTaskStringUtils.java diff --git a/src/main/java/tool/ResourceParser.java b/src/main/java/net/micode/notes/tool/ResourceParser.java similarity index 100% rename from src/main/java/tool/ResourceParser.java rename to src/main/java/net/micode/notes/tool/ResourceParser.java diff --git a/src/main/java/ui/AlarmAlertActivity.java b/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java similarity index 100% rename from src/main/java/ui/AlarmAlertActivity.java rename to src/main/java/net/micode/notes/ui/AlarmAlertActivity.java diff --git a/src/main/java/ui/AlarmInitReceiver.java b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java similarity index 100% rename from src/main/java/ui/AlarmInitReceiver.java rename to src/main/java/net/micode/notes/ui/AlarmInitReceiver.java diff --git a/src/main/java/ui/AlarmInitReceiver.java.bak b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java.bak similarity index 100% rename from src/main/java/ui/AlarmInitReceiver.java.bak rename to src/main/java/net/micode/notes/ui/AlarmInitReceiver.java.bak diff --git a/src/main/java/ui/AlarmReceiver.java b/src/main/java/net/micode/notes/ui/AlarmReceiver.java similarity index 100% rename from src/main/java/ui/AlarmReceiver.java rename to src/main/java/net/micode/notes/ui/AlarmReceiver.java diff --git a/src/main/java/ui/AlarmReceiver.java.bak b/src/main/java/net/micode/notes/ui/AlarmReceiver.java.bak similarity index 100% rename from src/main/java/ui/AlarmReceiver.java.bak rename to src/main/java/net/micode/notes/ui/AlarmReceiver.java.bak diff --git a/src/main/java/ui/DateTimePicker.java b/src/main/java/net/micode/notes/ui/DateTimePicker.java similarity index 100% rename from src/main/java/ui/DateTimePicker.java rename to src/main/java/net/micode/notes/ui/DateTimePicker.java diff --git a/src/main/java/ui/DateTimePicker.java.bak b/src/main/java/net/micode/notes/ui/DateTimePicker.java.bak similarity index 100% rename from src/main/java/ui/DateTimePicker.java.bak rename to src/main/java/net/micode/notes/ui/DateTimePicker.java.bak diff --git a/src/main/java/ui/DateTimePickerDialog.java b/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java similarity index 100% rename from src/main/java/ui/DateTimePickerDialog.java rename to src/main/java/net/micode/notes/ui/DateTimePickerDialog.java diff --git a/src/main/java/ui/DropdownMenu.java b/src/main/java/net/micode/notes/ui/DropdownMenu.java similarity index 100% rename from src/main/java/ui/DropdownMenu.java rename to src/main/java/net/micode/notes/ui/DropdownMenu.java diff --git a/src/main/java/ui/FoldersListAdapter.java b/src/main/java/net/micode/notes/ui/FoldersListAdapter.java similarity index 100% rename from src/main/java/ui/FoldersListAdapter.java rename to src/main/java/net/micode/notes/ui/FoldersListAdapter.java diff --git a/src/main/java/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java similarity index 91% rename from src/main/java/ui/NoteEditActivity.java rename to src/main/java/net/micode/notes/ui/NoteEditActivity.java index aa5db14..fd0838b 100644 --- a/src/main/java/ui/NoteEditActivity.java +++ b/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -15,12 +15,10 @@ */ package net.micode.notes.ui; - -import android.Manifest; - -import android.speech.tts.TextToSpeech.OnInitListener; + import android.app.AlarmManager; import android.app.AlertDialog; +import android.app.Dialog; import android.app.PendingIntent; import android.app.SearchManager; import android.appwidget.AppWidgetManager; @@ -32,8 +30,6 @@ import android.content.SharedPreferences; import android.graphics.Paint; import android.os.Bundle; import android.preference.PreferenceManager; -import android.speech.tts.TextToSpeech; -import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.text.Editable; import android.text.Spannable; @@ -50,12 +46,11 @@ import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; -import android.widget.Button; +import android.view.inputmethod.InputMethodManager; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -76,7 +71,6 @@ import net.micode.notes.widget.NoteWidgetProvider_4x; import java.util.HashMap; import java.util.HashSet; -import java.util.Locale; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -96,9 +90,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen public ImageView ibSetBgColor; } //使用Map实现数据存储 - final String[] mPermissionList = new String[]{ - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_EXTERNAL_STORAGE}; private static final Map sBgSelectorBtnsMap = new HashMap(); static { sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); @@ -140,7 +131,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen private static final String TAG = "NoteEditActivity"; private HeadViewHolder mNoteHeaderHolder; - private TextToSpeech mTTS; + private View mHeadViewPanel; //私有化一个界面操作mHeadViewPanel,对表头的操作 private View mNoteBgColorSelector; @@ -174,7 +165,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen //字符数量计数显示 private TextView textView; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -186,7 +176,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen } initResources(); count(); - read(); } /** @@ -227,7 +216,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen } //如果ID在数据库中未找到 if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) { - Intent jump = new Intent(this, net.micode.notes.ui.NotesListActivity.class); + Intent jump = new Intent(this, NotesListActivity.class); startActivity(jump); //程序将跳转到上面声明的intent——jump showToast(R.string.error_note_not_exist); @@ -307,7 +296,8 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen } private void initNoteScreen() { - //对界面的初始化操作 + + //对便签的初始化操作 mNoteEditor.setTextAppearance(this, TextAppearanceResources .getTexAppearanceResource(mFontSizeId)); //设置外观 @@ -412,20 +402,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen } private void initResources() { - - mTTS = new TextToSpeech(this, new OnInitListener() { - @Override - public void onInit(int status) { - - if (status == TextToSpeech.SUCCESS) { - int result = mTTS.setLanguage(Locale.US); - - if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE) { - //Toast.makeText(CodeView.this,"TTS暂时不支持这种语言朗读",50000).show(); - } - } - } - }); mHeadViewPanel = findViewById(R.id.note_title); mNoteHeaderHolder = new HeadViewHolder(); mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); @@ -492,7 +468,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen if (id == R.id.btn_set_bg_color) { mNoteBgColorSelector.setVisibility(View.VISIBLE); findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( - View.VISIBLE); + - View.VISIBLE); } else if (sBgSelectorBtnsMap.containsKey(id)) { findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.GONE); @@ -511,8 +487,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); } mFontSizeSelector.setVisibility(View.GONE); - }else if (id==R.id.read_note){ - mTTS.speak(mNoteEditor.getText().toString(),TextToSpeech.QUEUE_FLUSH,null); } }//************************存在问题 @@ -571,7 +545,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen return true; } - @Override /* * 函数功能:动态改变菜单选项内容 @@ -580,14 +553,56 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { //根据菜单的id来编剧相关项目 - case R.id.action_insert_image: - //绑定按钮的点击响应,获取危险权限,这里的100是申请码,可以自己定义,整数即可 - ActivityCompat.requestPermissions(NoteEditActivity.this, mPermissionList, 100); -//用于获取焦点,否则插入图片时没有响应 - mNoteEditor.getFocusable(); - mNoteEditor.insertImage(realPathFromUri, realPathFromUri + "\" style=\"max-width:100%"); + case R.id.locker: + //为便签上锁 + final AlertDialog.Builder create_password = new AlertDialog.Builder(this); + //创建关于上锁操作的对话框 + final View view = LayoutInflater.from(this).inflate(R.layout.buttom,null); + //??? + final EditText etName = (EditText)view.findViewById(R.id.password); + final EditText etTag = (EditText)view.findViewById(R.id.tag); + //??? + etName.setText(""); + etName.setHint(" Please input your password"); + etTag.setText(""); + etTag.setHint(" Please input your tag"); + create_password.setTitle(getString(R.string.alert_set_password)); + //设置标题为Set your password + create_password.setNegativeButton("OK", new DialogInterface.OnClickListener() {//设置监听,获取输入的字符串 + @Override + public void onClick(DialogInterface dialog, int which) { + String password = etName.getText().toString(); + String tag = etTag.getText().toString(); + //获取输入的字符串 + mWorkingNote.setPassword(password,tag); + //设置密码 + Toast.makeText(NoteEditActivity.this,"Password created successfully",Toast.LENGTH_SHORT).show(); + //设置密码成功的消息弹窗 + InputMethodManager inputMethodManager = (InputMethodManager) + getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0); + //关闭软键盘 + dialog.dismiss(); + //关闭dialog + } + }); + create_password.setPositiveButton("Cancel", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //关闭软键盘 + Toast.makeText(NoteEditActivity.this,"Canceling...",Toast.LENGTH_SHORT).show(); + InputMethodManager inputMethodManager = (InputMethodManager) + getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0); + } + }); + final Dialog dialog = create_password.setView(view).show();//error + dialog.show(); + break; + case R.id.unlocker: + mWorkingNote.setPassword("",""); + Toast.makeText(NoteEditActivity.this,"Password unlocked successfully",Toast.LENGTH_SHORT).show(); break; - case R.id.menu_new_note: //创建一个新的便签 createNewNote(); @@ -659,7 +674,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen * 函数实现:如下注释 */ private void setReminder() { - net.micode.notes.ui.DateTimePickerDialog d = new net.micode.notes.ui.DateTimePickerDialog(this, System.currentTimeMillis()); + DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); // 建立修改时间日期的对话框 d.setOnDateTimeSetListener(new OnDateTimeSetListener() { public void OnDateTimeSet(AlertDialog dialog, long date) { @@ -751,7 +766,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen * 函数实现:直接看NotesPreferenceActivity中同步名称是否为空 */ private boolean isSyncMode() { - return net.micode.notes.ui.NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; } /* @@ -768,7 +783,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen saveNote(); } if (mWorkingNote.getNoteId() > 0) { - Intent intent = new Intent(this, net.micode.notes.ui.AlarmReceiver.class); + Intent intent = new Intent(this, AlarmReceiver.class); intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); //若有有运行的便签就是建立一个链接器将标签id都存在uri中 PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); @@ -811,19 +826,19 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen } //没有编辑框的话直接返回 for (int i = index + 1; i < childCount; i++) { - ((net.micode.notes.ui.NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) .setIndex(i - 1); //通过id把编辑框存在便签编辑框中 } mEditTextList.removeViewAt(index); //删除特定位置的视图 - net.micode.notes.ui.NoteEditText edit = null; + NoteEditText edit = null; if(index == 0) { - edit = (net.micode.notes.ui.NoteEditText) mEditTextList.getChildAt(0).findViewById( + edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( R.id.et_edit_text); } else { - edit = (net.micode.notes.ui.NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( + edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( R.id.et_edit_text); } //通过id把编辑框存在空的NoteEditText中 @@ -849,11 +864,11 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen View view = getListItem(text, index); mEditTextList.addView(view, index); //建立一个新的视图并添加到编辑文本框内 - net.micode.notes.ui.NoteEditText edit = (net.micode.notes.ui.NoteEditText) view.findViewById(R.id.et_edit_text); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); edit.requestFocus();//请求优先操作 edit.setSelection(0);//定位到起始位置 for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { - ((net.micode.notes.ui.NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) .setIndex(i); //遍历子文本框并设置对应对下标 } @@ -918,7 +933,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen private View getListItem(String item, int index) { View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); //创建一个视图 - final net.micode.notes.ui.NoteEditText edit = (net.micode.notes.ui.NoteEditText) view.findViewById(R.id.et_edit_text); + final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); //创建一个文本编辑框并设置可见性 CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); @@ -1005,7 +1020,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen for (int i = 0; i < mEditTextList.getChildCount(); i++) { View view = mEditTextList.getChildAt(i); //遍历所有子编辑框的视图 - net.micode.notes.ui.NoteEditText edit = (net.micode.notes.ui.NoteEditText) view.findViewById(R.id.et_edit_text); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); if (!TextUtils.isEmpty(edit.getText())) { //若文本不为空 if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { @@ -1179,32 +1194,6 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen public void afterTextChanged(Editable s) { textView.setText("字符数: " + currentLength); } - - }); } - - public void read() { - ImageButton read = findViewById(R.id.read_note); - read.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mTTS.speak(mNoteEditor.getText().toString(),TextToSpeech.QUEUE_FLUSH,null); - } - }); - - } -// final String[] mPermissionList = new String[]{ -// Manifest.permission.WRITE_EXTERNAL_STORAGE, -// Manifest.permission.READ_EXTERNAL_STORAGE}; -// findViewById(R.id.action_insert_image).setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -////绑定按钮的点击响应,获取危险权限,这里的100是申请码,可以自己定义,整数即可 -// ActivityCompat.requestPermissions(NoteEditActivity.this, mPermissionList, 100); -////用于获取焦点,否则插入图片时没有响应 -// mNoteEditor.focusEditor(); -// } -// }); - } diff --git a/src/main/java/ui/NoteEditActivity.java.bak b/src/main/java/net/micode/notes/ui/NoteEditActivity.java.bak similarity index 100% rename from src/main/java/ui/NoteEditActivity.java.bak rename to src/main/java/net/micode/notes/ui/NoteEditActivity.java.bak diff --git a/src/main/java/ui/NoteEditText.java b/src/main/java/net/micode/notes/ui/NoteEditText.java similarity index 100% rename from src/main/java/ui/NoteEditText.java rename to src/main/java/net/micode/notes/ui/NoteEditText.java diff --git a/src/main/java/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java similarity index 93% rename from src/main/java/ui/NoteItemData.java rename to src/main/java/net/micode/notes/ui/NoteItemData.java index ad1de5e..f424958 100644 --- a/src/main/java/ui/NoteItemData.java +++ b/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -40,6 +40,8 @@ public class NoteItemData { NoteColumns.TYPE, NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, + NoteColumns.PASSWORD, + NoteColumns.TAG_PASSWORD }; //常量标记和数据就不一一标记了,意义翻译基本就知道 private static final int ID_COLUMN = 0; @@ -54,6 +56,8 @@ 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 TAG_PASSWORD_COLUMN = 13; private long mId; private long mAlertDate; @@ -67,6 +71,8 @@ public class NoteItemData { private int mType; private int mWidgetId; private int mWidgetType; + private String mPassword; + private String mTAG; private String mName; private String mPhoneNumber; @@ -92,6 +98,8 @@ 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); + mTAG = cursor.getString(TAG_PASSWORD_COLUMN); //初始化电话号码的信息 mPhoneNumber = ""; @@ -120,7 +128,7 @@ public class NoteItemData { mIsMultiNotesFollowingFolder = false; mIsOneNoteFollowingFolder = false; - //主要是设置上诉2标记 + //主要是设置上述2个标记 if (mType == Notes.TYPE_NOTE && !mIsFirstItem) {//若是note格式并且不是第一个元素 int position = cursor.getPosition(); if (cursor.moveToPrevious()) {//获取光标位置后看上一行 @@ -219,6 +227,8 @@ public class NoteItemData { return (mAlertDate > 0); } + public String getPassword() { return mPassword;} + //若数据父id为保存至文件夹模式的id且满足电话号码单元不为空,则isCallRecord为true public boolean isCallRecord() { return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); @@ -227,4 +237,8 @@ public class NoteItemData { public static int getNoteType(Cursor cursor) { return cursor.getInt(TYPE_COLUMN); } + + public boolean hasPassword() { return mPassword.equals("") ;} + + public String getmTAG() {return mTAG;} } diff --git a/src/main/java/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java similarity index 89% rename from src/main/java/ui/NotesListActivity.java rename to src/main/java/net/micode/notes/ui/NotesListActivity.java index 0bf0bf2..93c406e 100644 --- a/src/main/java/ui/NotesListActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -160,8 +160,8 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe @Override // 返回一些子模块完成的数据交给主Activity处理 protected void onActivityResult(int requestCode, int resultCode, Intent data) { - // 结果值 和 要求值 符合要求 - if (resultCode == RESULT_OK + // 结果值 和 要求值 符合要求 + if (resultCode == RESULT_OK && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { mNotesListAdapter.changeCursor(null); } else { @@ -171,15 +171,15 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe } private void setAppInfoFromRawRes() { - // Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。 + // Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。 SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { StringBuilder sb = new StringBuilder(); InputStream in = null; try { // 把资源文件放到应用程序的/raw/raw下,那么就可以在应用中使用getResources获取资源后, - // 以openRawResource方法(不带后缀的资源文件名)打开这个文件。 - in = getResources().openRawResource(R.raw.introduction); + // 以openRawResource方法(不带后缀的资源文件名)打开这个文件。 + in = getResources().openRawResource(R.raw.introduction); if (in != null) { InputStreamReader isr = new InputStreamReader(in); BufferedReader br = new BufferedReader(isr); @@ -205,14 +205,14 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe } } } - + // 创建空的WorkingNote WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, ResourceParser.RED); note.setWorkingText(sb.toString()); if (note.saveNote()) { - // 更新保存note的信息 + // 更新保存note的信息 sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); } else { Log.e(TAG, "Save introduction note error"); @@ -232,7 +232,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe mContentResolver = this.getContentResolver(); // 获取应用程序的数据,得到类似数据表的东西 mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); mCurrentFolderId = Notes.ID_ROOT_FOLDER; - + // findViewById 是安卓编程的定位函数,主要是引用.R文件里的引用名 mNotesListView = (ListView) findViewById(R.id.notes_list); // 绑定XML中的ListView,作为Item的容器 mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), @@ -330,7 +330,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe } public void onItemCheckedStateChanged(ActionMode mode, int position, long id, - boolean checked) { + boolean checked) { mNotesListAdapter.setCheckedItem(position, checked); updateMenu(); } @@ -348,14 +348,14 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe builder.setTitle(getString(R.string.alert_title_delete)); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.setMessage(getString(R.string.alert_message_delete_notes, - mNotesListAdapter.getSelectedCount())); + mNotesListAdapter.getSelectedCount())); builder.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, - int which) { - batchDelete(); - } - }); + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + batchDelete(); + } + }); builder.setNegativeButton(android.R.string.cancel, null); builder.show(); break; @@ -436,7 +436,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe : NORMAL_SELECTION; mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { - String.valueOf(mCurrentFolderId) + String.valueOf(mCurrentFolderId) }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); } @@ -647,7 +647,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe values.put(NoteColumns.LOCAL_MODIFIED, 1); mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID + "=?", new String[] { - String.valueOf(mFocusNoteDataItem.getId()) + String.valueOf(mFocusNoteDataItem.getId()) }); } } else if (!TextUtils.isEmpty(name)) { @@ -693,25 +693,25 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe */ @Override public void onBackPressed() { switch (mState) { - case SUB_FOLDER: - mCurrentFolderId = Notes.ID_ROOT_FOLDER; - mState = ListEditState.NOTE_LIST; - startAsyncNotesListQuery(); - mTitleBar.setVisibility(View.GONE); - break; - case CALL_RECORD_FOLDER: - mCurrentFolderId = Notes.ID_ROOT_FOLDER; - mState = ListEditState.NOTE_LIST; - mAddNewNote.setVisibility(View.VISIBLE); - mTitleBar.setVisibility(View.GONE); - startAsyncNotesListQuery(); - break; - case NOTE_LIST: - super.onBackPressed(); - break; - default: - break; - } + case SUB_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; + case CALL_RECORD_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mAddNewNote.setVisibility(View.VISIBLE); + mTitleBar.setVisibility(View.GONE); + startAsyncNotesListQuery(); + break; + case NOTE_LIST: + super.onBackPressed(); + break; + default: + break; + } } /** @@ -731,7 +731,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe } intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { - appWidgetId + appWidgetId }); sendBroadcast(intent); @@ -936,7 +936,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe public void onItemClick(AdapterView parent, View view, int position, long id) { if (view instanceof NotesListItem) { - NoteItemData item = ((NotesListItem) view).getItemData(); + final NoteItemData item = ((NotesListItem) view).getItemData(); if (mNotesListAdapter.isInChoiceMode()) { if (item.getType() == Notes.TYPE_NOTE) { position = position - mNotesListView.getHeaderViewsCount(); @@ -952,7 +952,46 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe || item.getType() == Notes.TYPE_SYSTEM) { openFolder(item); } else if (item.getType() == Notes.TYPE_NOTE) { - openNode(item); + final AlertDialog.Builder check_password = new AlertDialog.Builder(NotesListActivity.this); + //this is what??? + final View view_check = LayoutInflater.from(NotesListActivity.this).inflate(R.layout.dialog_edit_text,null); + final EditText etName = (EditText)view_check.findViewById(R.id.et_foler_name); + if (item.hasPassword()){ + openNode(item); + } + else{ + etName.setText(""); + etName.setHint(" Input the right password"); + check_password.setTitle("Check your password"); + check_password.setPositiveButton("Cancel", new DialogInterface.OnClickListener() {//设置Cancel按钮 + @Override + public void onClick(DialogInterface dialog, int which) { + Toast.makeText(NotesListActivity.this,"Canceling...",Toast.LENGTH_SHORT).show(); + InputMethodManager inputMethodManager = (InputMethodManager) + getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0); + } + }); + check_password.setNegativeButton("OK", new DialogInterface.OnClickListener() {//设置OK按钮 + @Override + public void onClick(DialogInterface dialog, int which) { + String password = etName.getText().toString(); + if (password.equals(item.getPassword())){ + Toast.makeText(NotesListActivity.this,"Oh!!!You are right!",Toast.LENGTH_SHORT).show(); + InputMethodManager inputMethodManager = (InputMethodManager) + getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(etName.getWindowToken(),0); + dialog.dismiss(); + openNode(item); + } + else { + Toast.makeText(NotesListActivity.this,"You are wrong...",Toast.LENGTH_SHORT).show(); + } + } + }); + final Dialog dialog = check_password.setView(view_check).show();//view is wrong + dialog.show(); + } } else { Log.e(TAG, "Wrong note type in NOTE_LIST"); } @@ -979,7 +1018,7 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe private void startQueryDestinationFolders() { String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; selection = (mState == ListEditState.NOTE_LIST) ? selection: - "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; + "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, null, diff --git a/src/main/java/ui/NotesListAdapter.java b/src/main/java/net/micode/notes/ui/NotesListAdapter.java similarity index 100% rename from src/main/java/ui/NotesListAdapter.java rename to src/main/java/net/micode/notes/ui/NotesListAdapter.java diff --git a/src/main/java/ui/NotesListItem.java b/src/main/java/net/micode/notes/ui/NotesListItem.java similarity index 93% rename from src/main/java/ui/NotesListItem.java rename to src/main/java/net/micode/notes/ui/NotesListItem.java index e5af6ce..9f0f5f2 100644 --- a/src/main/java/ui/NotesListItem.java +++ b/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -38,6 +38,7 @@ public class NotesListItem extends LinearLayout { private TextView mCallName; // private NoteItemData mItemData; //标签数据 private CheckBox mCheckBox; //打钩框 + private ImageView mLocker;//锁图片 /*初始化基本信息*/ public NotesListItem(Context context) { @@ -49,6 +50,7 @@ public class NotesListItem extends LinearLayout { mTime = (TextView) findViewById(R.id.tv_time); mCallName = (TextView) findViewById(R.id.tv_name); mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); + mLocker = (ImageView) findViewById(R.id.iv_locker); } ///根据data的属性对各个控件的属性的控制,主要是可见性Visibility,内容setText,格式setTextAppearance public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { @@ -58,8 +60,8 @@ public class NotesListItem extends LinearLayout { } else { mCheckBox.setVisibility(View.GONE); } - mItemData = data; + ///设置控件属性,一共三种情况,由data的id和父id是否与保存到文件夹的id一致来决定 if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { mCallName.setVisibility(View.GONE); @@ -82,6 +84,7 @@ public class NotesListItem extends LinearLayout { } else { mAlert.setVisibility(View.GONE); } + } else { mCallName.setVisibility(View.GONE); mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); @@ -101,6 +104,16 @@ public class NotesListItem extends LinearLayout { } } } + mLocker.setImageResource(R.drawable.title_locker); + if (data.hasPassword()){ + mLocker.setVisibility(GONE); + } + else { + mLocker.setVisibility(VISIBLE); + String text = " 不给你看哟~" + " (tag:" + data.getmTAG() + ")"; + mTitle.setText(text); + } + ///设置内容,获取相关时间,从data里编辑的日期中获取 mTime. setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); diff --git a/src/main/java/ui/NotesPreferenceActivity.java b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java similarity index 100% rename from src/main/java/ui/NotesPreferenceActivity.java rename to src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java diff --git a/src/main/java/widget/NoteWidgetProvider.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java similarity index 100% rename from src/main/java/widget/NoteWidgetProvider.java rename to src/main/java/net/micode/notes/widget/NoteWidgetProvider.java diff --git a/src/main/java/widget/NoteWidgetProvider_2x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java similarity index 100% rename from src/main/java/widget/NoteWidgetProvider_2x.java rename to src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java diff --git a/src/main/java/widget/NoteWidgetProvider_4x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java similarity index 100% rename from src/main/java/widget/NoteWidgetProvider_4x.java rename to src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java diff --git a/src/main/res/drawable-hdpi/laba.png b/src/main/res/drawable-hdpi/laba.png deleted file mode 100644 index b4c314f6aceed4d64534260c385b65ff38c9c5f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1644 zcmV-y29x=TP)MQewMJlg8`y zk7Q=o-kCW(-2FB7x4g>4A1e=wOEZYeqBe18<)(`c=k;9NlgGfUFKvmI|0?f|B+#DSI8su{5rN1Ki<+$O5 zne&16Id@{rm08K5}G-5zq6PzcpX!9K``tca6DLZ9Vo? zi%|ov#if*xoFS+xlStha5`B5HWzu#@Ixb{8Ypm<8?r29*$YhWP zS@L|J`T67f;YpvK$)n;kpv8of;&eZihx-XB@@^Axn>e;SNiluAUk+5|exl5M;Wh($?o zJaM8q+m!JV-u?tp#Vjmh9&TWaP`&D|i%?O@P77b@%F>m~ z#oHV2LILLHt(&K(W2t8RFoHwODj^#i@XxDgP;OAEx_Y<1^gR;Kzpy*#_&8En0pEv- z2_UT8AR@~qjC3j{wWSjB;fJQCK#Lna3L(n)QfQ^#Z*byonANpxrkdV3KO_I0$=-P?<1GDxbmCOERP z0=|c+qAGA_0sc`r?A1!xaM&yK3&6Gh{?n0h-vkI9D=MN@ffGpYrF-Zo`vwQWaV^9UAyuIbnX;47jJorMsoY?x)$x zfj*h6hh=>Y@_8f-(5fOg1CG4cxH|jm+JU|*iql^|JQ^g-AA*E+yFutlwb0e#?y?;1trnG)RWn__OSm{DH)d~j1g1B&Ruxd7nMNt%unnp-ttC>6V-hKDDcyA_& zA&xVtyB;{)cV@nKzxUm9&b{x!P5X~FHFYkTnmU*CdcSl7K5*=Vv80l|gmMJf3sFSm zXN8aQV9#8-@WgjFocPeQbF(JKv!MOkOx4Wc_^0QOzIwxm4?R6MYb2g6!xZ6-n8*33 z60MPgh&(6gt>yo(d~*Ki=^YavIQGt1C9#(w9{~GB+Tif#b2C>qV(xqD!=Zj#f6o#h z14%=a{g>XJx%_YQnoh(vaW6s~0P{yfn@9dh3h>p1>D8>k;)^#4W zvO~rHk98#0(g7ZQ;oX7laHFT@YuymLj?3rV-7yBK4w~go*x&Y#f4%3M<$YokU3h(Z zsi!_Zb8+GRP)X*zHT!(U;+@4Oh1XpX*PW%FSnAHvaF)7tcx&<2kvjQ4z>^Hfmt83y zR6W_qvI)ULN|YikQA7<84dqzIi9`cLXQCk|S}_ye+LK|M*4mc1nuZav1`z?tjR}BY zBm*=U!2%c~#ptmp7%vVSW-WJwz)0vN$F-0b#6ZJY`m!7W{`$Sn(q~KLBJ@8pPT!rk zY{*%0r517o-!1X&^^~S76xTvQ=o5${cDs5ZlvGF64OBwN&0N!d<3Z4c($R8tI;Rw@+EACF{f+=2*T`M-dRX zw)iJ^J#feRHdl_SMS-!?s^0kQ4^Q64^-6JTn%EMzc}r42wFkx3ETC9GsAf56&<#*AoJh zLOx!c$+oSetq2$*#V3{_pSJs4fvEbEsyos1%iiM4r^@4Ql*O_2-+yVJhohU~#d177 g^N_#!*|X991{xT0j?k?gfB*mh07*qoM6N<$g2`Cj0RR91 literal 0 HcmV?d00001 diff --git a/src/main/res/layout/buttom.xml b/src/main/res/layout/buttom.xml new file mode 100644 index 0000000..cba74a0 --- /dev/null +++ b/src/main/res/layout/buttom.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/res/layout/note_edit.xml b/src/main/res/layout/note_edit.xml index 9a562c4..95839f1 100644 --- a/src/main/res/layout/note_edit.xml +++ b/src/main/res/layout/note_edit.xml @@ -31,26 +31,15 @@ android:layout_width="fill_parent" android:layout_height="wrap_content"> - - - - - + - - - - - - - - + + android:scrollbars="none"> + diff --git a/src/main/res/layout/note_item.xml b/src/main/res/layout/note_item.xml index d541f6a..394229f 100644 --- a/src/main/res/layout/note_item.xml +++ b/src/main/res/layout/note_item.xml @@ -69,6 +69,12 @@ android:clickable="false" android:visibility="gone" /> + + + + android:id="@+id/unlocker" + android:title="@string/note_unlock"/> + + - diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index a8de74b..10a6d40 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -17,13 +17,14 @@ - - note + 超级便签 Notes 2x2 Notes 4x4 No associated note found, click to create associated note. Privacy mode,can not see note content ... + Lock + Unlock Add note Delete reminder successfully Set reminder @@ -37,7 +38,6 @@ Browse web Open map - read_note /MIUI/notes/ notes_%s.txt @@ -77,6 +77,8 @@ Confirm to delete the selected %d notes? Confirm to delete this note? Have moved selected %1$d notes to %2$s folder + + Set your password and tag; SD card busy, not available now Export failed, please check SD card