diff --git a/Notes-master/.idea/.name b/Notes-master/.idea/.name new file mode 100644 index 0000000..683595c --- /dev/null +++ b/Notes-master/.idea/.name @@ -0,0 +1 @@ +AlarmAlertActivity.java \ No newline at end of file diff --git a/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java b/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java index b3b61e7..440a871 100644 --- a/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java +++ b/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -64,10 +64,6 @@ public class GTaskASyncTask extends AsyncTask { } private void showNotification(int tickerId, String content) { - Notification notification = new Notification(R.drawable.notification, mContext - .getString(tickerId), System.currentTimeMillis()); - notification.defaults = Notification.DEFAULT_LIGHTS; - notification.flags = Notification.FLAG_AUTO_CANCEL; PendingIntent pendingIntent; if (tickerId != R.string.ticker_success) { pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, @@ -77,11 +73,20 @@ public class GTaskASyncTask extends AsyncTask { pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, NotesListActivity.class), 0); } - notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, - pendingIntent); + + + Notification.Builder builder = new Notification.Builder(mContext) + .setAutoCancel(true) + .setContentTitle(mContext.getString(R.string.app_name)) + .setContentText(content) + .setContentIntent(pendingIntent) + .setWhen(System.currentTimeMillis()) + .setOngoing(true); + Notification notification=builder.getNotification(); mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); } + @Override protected Integer doInBackground(Void... unused) { publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity diff --git a/Notes-master/src/net/micode/notes/ui/AddActivity.java b/Notes-master/src/net/micode/notes/ui/AddActivity.java new file mode 100644 index 0000000..764e27e --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/AddActivity.java @@ -0,0 +1,59 @@ +package net.micode.notes.ui; + +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; + + +import net.micode.notes.R; +import net.micode.notes.ui.bean.Note; +import net.micode.notes.util.ToastUtil; + +import java.text.SimpleDateFormat; +import java.util.Date; + +public class AddActivity extends Activity { + + private EditText etContent; + + private NoteDbOpenHelper mNoteDbOpenHelper; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add); + + etContent = findViewById(R.id.sf_et_1); + + mNoteDbOpenHelper = new NoteDbOpenHelper(this); + + } + + public void add(View view) { + String content = etContent.getText().toString(); + + Note note = new Note(); + note.setContent(content); + note.setCreatedTime(getCurrentTimeFormat()); + + long row = mNoteDbOpenHelper.insertData(note); + if(row != -1){ + ToastUtil.toastShort(this,"Add Success"); + this.finish(); + }else{ + ToastUtil.toastShort(this,"Add Fail"); + } + + + } + + private String getCurrentTimeFormat() { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM月dd HH:mm:ss"); + Date date = new Date(); + return simpleDateFormat.format(date); + } + + +} \ No newline at end of file diff --git a/Notes-master/src/net/micode/notes/ui/EditActivity.java b/Notes-master/src/net/micode/notes/ui/EditActivity.java new file mode 100644 index 0000000..4d4522a --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/EditActivity.java @@ -0,0 +1,72 @@ +package net.micode.notes.ui; + + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; + +import net.micode.notes.R; +import net.micode.notes.ui.bean.Note; +import net.micode.notes.util.ToastUtil; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimeZone; + +public class EditActivity extends Activity { + + private Note note; + private EditText etContent; + + private NoteDbOpenHelper mNoteDbOpenHelper; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_edit); + + etContent = findViewById(R.id.sf_et_2); + + initData(); + + + + } + + private void initData() { + Intent intent = getIntent(); + note = (Note) intent.getSerializableExtra("note"); + if(note!=null){ + etContent.setText(note.getContent()); + } + + mNoteDbOpenHelper = new NoteDbOpenHelper(this); + + } + + public void save(View view) { + String content = etContent.getText().toString(); + + note.setContent(content); + note.setCreatedTime(getCurrentTimeFormat()); + + long row = mNoteDbOpenHelper.updateData(note); + + if(row != -1 && row != 0){ + ToastUtil.toastShort(this,"Edit Success"); + this.finish(); + }else{ + ToastUtil.toastShort(this,"Edit Fail"); + } + } + private String getCurrentTimeFormat() { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM月dd HH:mm:ss"); + + TimeZone time = TimeZone.getTimeZone("Etc/GMT-8"); //转换为中国时区 + TimeZone.setDefault(time); + Date date = new Date(); + + return simpleDateFormat.format(date); + } +} \ No newline at end of file diff --git a/Notes-master/src/net/micode/notes/ui/NoteDbOpenHelper.java b/Notes-master/src/net/micode/notes/ui/NoteDbOpenHelper.java new file mode 100644 index 0000000..b2853f1 --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/NoteDbOpenHelper.java @@ -0,0 +1,128 @@ +package net.micode.notes.ui; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.text.TextUtils; + +import net.micode.notes.ui.bean.Note; + +import java.util.ArrayList; +import java.util.List; + +public class NoteDbOpenHelper extends SQLiteOpenHelper { + + private static final String DB_NAME="noteSQLite.db"; + private static final String TABLE_NAME_NOTE = "note"; + private static final String CREATE_TABLE_SQL = "create table " + TABLE_NAME_NOTE + " (id integer primary key autoincrement, content text, create_time text)"; + + + public NoteDbOpenHelper(Context context){ + super(context,DB_NAME,null,1); + } + + @Override + public void onCreate(SQLiteDatabase db) { + + db.execSQL(CREATE_TABLE_SQL); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } + + public long insertData(Note note){ + SQLiteDatabase db = getWritableDatabase(); + + ContentValues values = new ContentValues(); + values.put("content",note.getContent()); + values.put("create_time",note.getCreatedTime()); + + return db.insert(TABLE_NAME_NOTE,null,values); + + } + + public int deleteFromDbById(String id){ + SQLiteDatabase db = getWritableDatabase(); + return db.delete(TABLE_NAME_NOTE,"id like ?", new String[]{id}); + } + + + public int updateData(Note note) { + + SQLiteDatabase db = getWritableDatabase(); + + ContentValues values = new ContentValues(); + + values.put("content", note.getContent()); + values.put("create_time", note.getCreatedTime()); + + return db.update(TABLE_NAME_NOTE, values, "id like ?", new String[]{note.getId()}); + } + + + + public List queryAllFromDb(){ + SQLiteDatabase db = getWritableDatabase(); + List notelist = new ArrayList<>(); + + Cursor cursor = db.query(TABLE_NAME_NOTE,null,null,null,null,null,null); + if (cursor != null){ + + while (cursor.moveToNext()){ + String id = cursor.getString(cursor.getColumnIndex("id")); + String content = cursor.getString(cursor.getColumnIndex("content")); + String createTime = cursor.getString(cursor.getColumnIndex("create_time")); + + Note note = new Note(); + note.setId(id); + note.setContent(content); + note.setCreatedTime(createTime); + + notelist.add(note); + + } + + cursor.close(); + } + return notelist; + + + } + + public List queryFromDbByContent(String content){ + if (TextUtils.isEmpty(content)){ + return queryAllFromDb(); + } + SQLiteDatabase db = getWritableDatabase(); + List noteList = new ArrayList<>(); + + Cursor cursor = db.query(TABLE_NAME_NOTE,null,"content like ?",new String[]{"%"+content+"%"},null,null,null); + + if (cursor != null){ + while (cursor.moveToNext()){ + + String id = cursor.getString(cursor.getColumnIndex("id")); + String content1 = cursor.getString(cursor.getColumnIndex("content")); + String createTime = cursor.getString(cursor.getColumnIndex("create_time")); + + Note note = new Note(); + note.setId(id); + note.setContent(content1); + note.setCreatedTime(createTime); + noteList.add(note); + + } + cursor.close(); + + } + return noteList; + + } + + + +} diff --git a/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java b/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java index de98982..96a9ff8 100644 --- a/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java +++ b/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java @@ -71,7 +71,7 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -//笔记编辑功能 + public class NoteEditActivity extends Activity implements OnClickListener, NoteSettingChangedListener, OnTextViewChangeListener { private class HeadViewHolder { @@ -83,7 +83,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, public ImageView ibSetBgColor; } - //便签背景选择按钮 + private static final Map sBgSelectorBtnsMap = new HashMap(); static { sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); @@ -150,11 +150,10 @@ public class NoteEditActivity extends Activity implements OnClickListener, private Pattern mPattern; @Override - //创建时进行初始化操作 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //将布局样式进行添加 this.setContentView(R.layout.note_edit); + if (savedInstanceState == null && !initActivityState(getIntent())) { finish(); return; @@ -163,7 +162,8 @@ public class NoteEditActivity extends Activity implements OnClickListener, } /** - * 当前Activity可能因内存不足被杀死,再次加载时应恢复之前的状态 + * Current activity may be killed when the memory is low. Once it is killed, for another time + * user load this activity, we should restore the former state */ @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { @@ -178,10 +178,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, Log.d(TAG, "Restoring from killed activity"); } } - //初始化活动状态函数 + private boolean initActivityState(Intent intent) { /** - * 如果用户指定查看笔记但未提供ID,跳转到笔记列表页 + * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, + * then jump to the NotesListActivity */ mWorkingNote = null; if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { @@ -189,7 +190,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, mUserQuery = ""; /** - * 如果是从搜索结果启动 + * Starting from the searched result */ if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) { noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); @@ -210,12 +211,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, return false; } } - //设置软键盘 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { - // 新建笔记 + // New note long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0); int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); @@ -224,7 +224,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, ResourceParser.getDefaultBgId(this)); - // 解析通话记录笔记 + // Parse call-record note String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0); if (callDate != 0 && phoneNumber != null) { @@ -263,12 +263,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, } @Override - //Activity恢复时调用,初始化笔记界面 protected void onResume() { super.onResume(); initNoteScreen(); } - //设置文本样式、背景等 + private void initNoteScreen() { mNoteEditor.setTextAppearance(this, TextAppearanceResources .getTexAppearanceResource(mFontSizeId)); @@ -290,11 +289,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, | DateUtils.FORMAT_SHOW_YEAR)); /** - * TODO: 添加设置提醒的菜单,目前因日期选择器未准备好而禁用 + * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker + * is not ready */ showAlertHeader(); } - //显示提醒头部信息,根据是否有提醒的设置显示相应内容 + private void showAlertHeader() { if (mWorkingNote.hasClockAlert()) { long time = System.currentTimeMillis(); @@ -313,17 +313,19 @@ public class NoteEditActivity extends Activity implements OnClickListener, } @Override - //重新初始化活动状态 protected void onNewIntent(Intent intent) { super.onNewIntent(intent); initActivityState(intent); } @Override - //用于保存笔记id protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - //若未保存笔记,则先保存笔记id + /** + * For new note without note id, we should firstly save it to + * generate a id. If the editing note is not worth saving, there + * is no id which is equivalent to create new note + */ if (!mWorkingNote.existInDatabase()) { saveNote(); } @@ -332,7 +334,6 @@ public class NoteEditActivity extends Activity implements OnClickListener, } @Override - //添加触摸事件,处理背景颜色和字体大小选项的显示和隐藏 public boolean dispatchTouchEvent(MotionEvent ev) { if (mNoteBgColorSelector.getVisibility() == View.VISIBLE && !inRangeOfView(mNoteBgColorSelector, ev)) { @@ -373,7 +374,6 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteEditor = (EditText) findViewById(R.id.note_edit_view); mNoteEditorPanel = findViewById(R.id.sv_note_edit); mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); - //为控件添加事件监听器,点击时触发当前类的onClick方法 for (int id : sBgSelectorBtnsMap.keySet()) { ImageView iv = (ImageView) findViewById(id); iv.setOnClickListener(this); @@ -387,9 +387,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE); /** - * HACKME: 修复在 SharedPreferences 中存储资源 id 可能出现的问题。 - * * 存储的 id 可能会大于资源数组的长度,在这种情况下, - * * 返回 {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} */ if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; @@ -398,28 +398,21 @@ public class NoteEditActivity extends Activity implements OnClickListener, } @Override - //当Activity暂停时调用此方法 protected void onPause() { - //调用父类的onPause方法 super.onPause(); - //保存笔记 if(saveNote()) { - //记录日志信息 Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); } - //清除设置状态 clearSettingState(); } - //更新部件的方法 + private void updateWidget() { Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); - //判断部件的类型,并为intent的目标类设置一定的效果 if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { intent.setClass(this, NoteWidgetProvider_2x.class); } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { intent.setClass(this, NoteWidgetProvider_4x.class); } else { - //记录错误日志信息 Log.e(TAG, "Unspported widget type"); return; } diff --git a/Notes-master/src/net/micode/notes/ui/NoteEditText.java b/Notes-master/src/net/micode/notes/ui/NoteEditText.java index 2afe2a8..8f88208 100644 --- a/Notes-master/src/net/micode/notes/ui/NoteEditText.java +++ b/Notes-master/src/net/micode/notes/ui/NoteEditText.java @@ -37,7 +37,7 @@ import net.micode.notes.R; import java.util.HashMap; import java.util.Map; -public class NoteEditText extends EditText { +public class NoteEditText extends androidx.appcompat.widget.AppCompatEditText { private static final String TAG = "NoteEditText"; private int mIndex; private int mSelectionStartBeforeDelete; diff --git a/Notes-master/src/net/micode/notes/ui/NotesListActivity.java b/Notes-master/src/net/micode/notes/ui/NotesListActivity.java index cc03dd0..549750c 100644 --- a/Notes-master/src/net/micode/notes/ui/NotesListActivity.java +++ b/Notes-master/src/net/micode/notes/ui/NotesListActivity.java @@ -79,7 +79,6 @@ import java.io.InputStreamReader; import java.util.HashSet; public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { - private int mode=-1; private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; private static final int FOLDER_LIST_QUERY_TOKEN = 1; @@ -136,15 +135,25 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt private final static int REQUEST_CODE_OPEN_NODE = 102; private final static int REQUEST_CODE_NEW_NODE = 103; + public Button mBtnsf; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.note_list); + initResources(); - getWindow().setBackgroundDrawableResource(R.drawable.bg1); - getWindow().setBackgroundDrawableResource(R.drawable.bg2); + mBtnsf = findViewById(R.id.btn_sf); + mBtnsf.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + Intent intent=null; + intent = new Intent(NotesListActivity.this,pwdActivity.class); + startActivity(intent); + + } + }); - initResources(); /** * Insert an introduction when user firstly use this application @@ -780,27 +789,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } else { Log.e(TAG, "Wrong state:" + mState); } - if (mode==-1){ - menu.findItem(R.id.menu_bg1).setVisible(false); - }else if (mode==0){ - menu.findItem(R.id.menu_bg2).setVisible(false); - } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case R.id.menu_bg1:{ - mode=-1; - getWindow().setBackgroundDrawableResource(R.drawable.bg1); - break; - } - case R.id.menu_bg2:{ - mode=0; - getWindow().setBackgroundDrawableResource(R.drawable.bg2); - break; - } case R.id.menu_new_folder: { showCreateOrModifyFolderDialog(true); break; diff --git a/Notes-master/src/net/micode/notes/ui/NotesListItem.java b/Notes-master/src/net/micode/notes/ui/NotesListItem.java index 1221e80..3292314 100644 --- a/Notes-master/src/net/micode/notes/ui/NotesListItem.java +++ b/Notes-master/src/net/micode/notes/ui/NotesListItem.java @@ -94,7 +94,8 @@ public class NotesListItem extends LinearLayout { } } } - mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + //mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + mTime.setText(DateUtils.formatDateTime(getContext(),data.getModifiedDate(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL)); setBackground(data); } diff --git a/Notes-master/src/net/micode/notes/ui/SafeFolderActivity.java b/Notes-master/src/net/micode/notes/ui/SafeFolderActivity.java new file mode 100644 index 0000000..c572a3f --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/SafeFolderActivity.java @@ -0,0 +1,168 @@ +package net.micode.notes.ui; + +import android.app.Activity; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.Button; + + + +import androidx.annotation.NonNull; + + +import androidx.appcompat.widget.SearchView; +import androidx.core.view.MenuItemCompat; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import net.micode.notes.R; +import net.micode.notes.ui.adapter.MyAdapter; +import net.micode.notes.ui.bean.Note; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +public class SafeFolderActivity extends Activity { + + private RecyclerView mRecyclerView; + private Button mBtnNew; + private List mNotes; + private MyAdapter mMyAdapter; + + private NoteDbOpenHelper mNoteDbOpenHelper; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_safe_folder); + + initView(); + initData(); + initEvent(); + + + } + + @Override + protected void onResume() { + super.onResume(); + + refreshDataFromDb(); + + } + + private void refreshDataFromDb() { + mNotes = getDataFromDB(); + mMyAdapter.refreshData(mNotes); + } + + private void initEvent() { + mMyAdapter = new MyAdapter(this,mNotes); + mRecyclerView.setAdapter(mMyAdapter); + + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); + mRecyclerView.setLayoutManager(linearLayoutManager); + } + + private void initData() { + mNotes = new ArrayList<>(); + mNoteDbOpenHelper = new NoteDbOpenHelper(this); + + } + + private List getDataFromDB() { + return mNoteDbOpenHelper.queryAllFromDb(); + } + + private String getCurrentTimeFormat(){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM月dd HH:mm:ss"); + Date date = new Date(); + return simpleDateFormat.format(date); + } + + + private void initView(){ + + mRecyclerView = findViewById(R.id.sf_list); + } + + public void NewNotes(View view) { + Intent intent = new Intent(SafeFolderActivity.this,AddActivity.class); + startActivity(intent); + } + +// @Override +// public boolean onCreateOptionsMenu(Menu menu) { +// +// getMenuInflater().inflate(R.menu.menu_main, menu); +// SearchView searchView = (SearchView) menu.findItem(R.id.sf_menu_search).getActionView(); +// +// +// searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { +// @Override +// public boolean onQueryTextSubmit(String query) { +// return false; +// } +// +// @Override +// public boolean onQueryTextChange(String newText) { +// mNotes = mNoteDbOpenHelper.queryFromDbByContent(newText); +// mMyAdapter.refreshData(mNotes); +// return true; +// } +// }); +// return super.onCreateOptionsMenu(menu); +// } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.safe, menu); + MenuItem x = menu.findItem(R.id.sf_menu_search); + if (x.getActionView() != null) { + Log.i("-------------","okk"); + }else{ + Log.i("-------------","false"); + } + SearchView searchView = (SearchView) menu.findItem(R.id.sf_menu_search).getActionView(); + + + if (searchView != null) { + Log.i("=====================","okk"); + + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String s) { + return false; + } + + @Override + public boolean onQueryTextChange(String s) { + mNotes = mNoteDbOpenHelper.queryFromDbByContent(s); + mMyAdapter.refreshData(mNotes); + return true; + } + }); + }else{ + Log.i("=====================","false"); + } + return super.onCreateOptionsMenu(menu); + } + + + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + return super.onOptionsItemSelected(item); + } +} \ No newline at end of file diff --git a/Notes-master/src/net/micode/notes/ui/adapter/MyAdapter.java b/Notes-master/src/net/micode/notes/ui/adapter/MyAdapter.java new file mode 100644 index 0000000..6263053 --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/adapter/MyAdapter.java @@ -0,0 +1,134 @@ +package net.micode.notes.ui.adapter; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import net.micode.notes.R; +import net.micode.notes.ui.EditActivity; +import net.micode.notes.ui.NoteDbOpenHelper; +import net.micode.notes.ui.NoteEditActivity; +import net.micode.notes.ui.bean.Note; +import net.micode.notes.util.ToastUtil; + +import java.util.List; + +public class MyAdapter extends RecyclerView.Adapter { + + private List mBeanList; + private LayoutInflater mLayoutInflater; + private Context mContext; + private NoteDbOpenHelper mNoteDbOpenHelper; + + public MyAdapter(Context context,List mBeanList){ + this.mBeanList = mBeanList; + this.mContext = context; + mLayoutInflater = LayoutInflater.from(mContext); + mNoteDbOpenHelper = new NoteDbOpenHelper(mContext); + + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = mLayoutInflater.inflate(R.layout.list_item_layout,parent,false); + + MyViewHolder myViewHolder= new MyViewHolder(view); + return myViewHolder; + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) { + + Note note = mBeanList.get(position); + holder.mTvContent.setText(note.getContent()); + holder.mTvTime.setText(note.getCreatedTime()); + holder.rlContainer.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Intent intent = new Intent(mContext, EditActivity.class); + intent.putExtra("note",note); + mContext.startActivity(intent); + + } + }); + + holder.rlContainer.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + //长按 + Dialog dialog = new Dialog(mContext,android.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth); + View view = mLayoutInflater.inflate(R.layout.list_item_dialog_layout, null); + + TextView tvDelete = view.findViewById(R.id.tv_delete); + + + tvDelete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int row = mNoteDbOpenHelper.deleteFromDbById(note.getId()); + if (row > 0){ + removeData(position); + + ToastUtil.toastShort(mContext,"Delete Success"); + }else{ + ToastUtil.toastShort(mContext,"Delete Fail"); + } + dialog.dismiss(); + } + }); + + dialog.setContentView(view); + + dialog.show(); + + return false; + } + }); + + } + + @Override + public int getItemCount() { + + return mBeanList.size(); + } + + public void refreshData(List notes){ + this.mBeanList = notes; + notifyDataSetChanged(); + } + + public void removeData(int pos){ + mBeanList.remove(pos); + notifyItemRemoved(pos); + } + + + class MyViewHolder extends RecyclerView.ViewHolder{ + + TextView mTvContent; + TextView mTvTime; + ViewGroup rlContainer; + + public MyViewHolder(@NonNull View itemView) { + super(itemView); + + this.mTvContent = itemView.findViewById(R.id.tv_content); + this.mTvTime = itemView.findViewById(R.id.tv_time); + this.rlContainer = itemView.findViewById(R.id.rl_item_container); + + + } + } + +} diff --git a/Notes-master/src/net/micode/notes/ui/bean/Note.java b/Notes-master/src/net/micode/notes/ui/bean/Note.java new file mode 100644 index 0000000..f5bf39d --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/bean/Note.java @@ -0,0 +1,43 @@ +package net.micode.notes.ui.bean; + +import java.io.Serializable; + +public class Note implements Serializable { + + private String content; + private String createdTime; + private String id; + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(String createdTime) { + this.createdTime = createdTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return "Note{" + + "content='" + content + '\'' + + ", createdTime='" + createdTime + '\'' + + ", id='" + id + '\'' + + '}'; + } +} diff --git a/Notes-master/src/net/micode/notes/ui/pwdActivity.java b/Notes-master/src/net/micode/notes/ui/pwdActivity.java new file mode 100644 index 0000000..357e2d4 --- /dev/null +++ b/Notes-master/src/net/micode/notes/ui/pwdActivity.java @@ -0,0 +1,47 @@ +package net.micode.notes.ui; + +import android.app.Activity; +import android.content.Intent; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + + +import net.micode.notes.R; +import net.micode.notes.util.ToastUtil; + +public class pwdActivity extends NotesListActivity { + + public Button mBtnpwd; + public EditText mEtpwd; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_pwd); + + mBtnpwd = findViewById(R.id.btn_pwd); + mEtpwd = findViewById(R.id.et_1); + + + mBtnpwd.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String pwd = mEtpwd.getText().toString(); + Intent intent=null; + + if(pwd.equals("123")){ + intent = new Intent(pwdActivity.this,SafeFolderActivity.class); + startActivity(intent); + }else{ + ToastUtil.toastShort(pwdActivity.this,"ERROR"); + } + + } + }); + + + } + +} \ No newline at end of file diff --git a/Notes-master/src/net/micode/notes/util/SpfUtil.java b/Notes-master/src/net/micode/notes/util/SpfUtil.java new file mode 100644 index 0000000..153381e --- /dev/null +++ b/Notes-master/src/net/micode/notes/util/SpfUtil.java @@ -0,0 +1,38 @@ +package net.micode.notes.util; + +import android.content.Context; +import android.content.SharedPreferences; + +public class SpfUtil { + + private static String SPF_NAME = "noteSpf"; + + public static void saveString(Context context, String key, String value) { + SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor edit = spf.edit(); + edit.putString(key, value); + edit.apply(); + } + + public static String getString(Context context, String key) { + SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE); + return spf.getString(key, ""); + } + + public static void saveInt(Context context, String key, int value) { + SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor edit = spf.edit(); + edit.putInt(key, value); + edit.apply(); + } + + public static int getInt(Context context, String key) { + SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE); + return spf.getInt(key, -1); + } + + public static int getIntWithDefault(Context context, String key, int defValue) { + SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE); + return spf.getInt(key, defValue); + } +} diff --git a/Notes-master/src/net/micode/notes/util/ToastUtil.java b/Notes-master/src/net/micode/notes/util/ToastUtil.java new file mode 100644 index 0000000..b1894f7 --- /dev/null +++ b/Notes-master/src/net/micode/notes/util/ToastUtil.java @@ -0,0 +1,15 @@ +package net.micode.notes.util; + +import android.content.Context; +import android.widget.Toast; + +public class ToastUtil { + + public static void toastShort(Context context, String msg) { + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + + public static void toastLong(Context context, String msg) { + Toast.makeText(context, msg, Toast.LENGTH_LONG).show(); + } +}