From 4a6219c302a8b47479f7abc674e0dd30c69712da Mon Sep 17 00:00:00 2001 From: liuyx Date: Wed, 31 May 2023 16:35:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 15 +- .../cc/liuyx/note/activity/AboutActivity.java | 45 +++ .../cc/liuyx/note/activity/MainActivity.java | 153 ++++---- .../note/activity/UserSettingsActivity.java | 318 +++++++++++++++++ .../note/{alarm => adapter}/PlanAdapter.java | 4 +- .../cc/liuyx/note/adapter/adapter.plantuml | 63 ---- .../cc/liuyx/note/alarm/AlarmReceiver.java | 12 +- .../liuyx/note/alarm/EditAlarmActivity.java | 329 ------------------ .../note/db/{CRUD.java => NoteCRUD.java} | 6 +- .../{alarm/CRUD.java => db/PlanCRUD.java} | 21 +- .../note/{alarm => db}/PlanDatabase.java | 11 +- .../cc/liuyx/note/{alarm => entity}/Plan.java | 2 +- app/src/main/res/drawable/piggy.jpg | Bin 11624 -> 0 bytes .../{note_shape.xml => shape_note.xml} | 2 +- 14 files changed, 494 insertions(+), 487 deletions(-) create mode 100644 app/src/main/java/cc/liuyx/note/activity/AboutActivity.java rename app/src/main/java/cc/liuyx/note/{alarm => adapter}/PlanAdapter.java (98%) delete mode 100644 app/src/main/java/cc/liuyx/note/adapter/adapter.plantuml delete mode 100644 app/src/main/java/cc/liuyx/note/alarm/EditAlarmActivity.java rename app/src/main/java/cc/liuyx/note/db/{CRUD.java => NoteCRUD.java} (97%) rename app/src/main/java/cc/liuyx/note/{alarm/CRUD.java => db/PlanCRUD.java} (84%) rename app/src/main/java/cc/liuyx/note/{alarm => db}/PlanDatabase.java (78%) rename app/src/main/java/cc/liuyx/note/{alarm => entity}/Plan.java (98%) delete mode 100644 app/src/main/res/drawable/piggy.jpg rename app/src/main/res/drawable/{note_shape.xml => shape_note.xml} (92%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fef2c14..dd8d60f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,30 +6,27 @@ + android:theme="@style/DayTheme"> - - - - - - + - + + diff --git a/app/src/main/java/cc/liuyx/note/activity/AboutActivity.java b/app/src/main/java/cc/liuyx/note/activity/AboutActivity.java new file mode 100644 index 0000000..b349511 --- /dev/null +++ b/app/src/main/java/cc/liuyx/note/activity/AboutActivity.java @@ -0,0 +1,45 @@ +package cc.liuyx.note.activity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.support.v7.widget.Toolbar; +import android.widget.LinearLayout; +import android.widget.Switch; + +import com.example.atry.R; + +import java.util.Objects; + +public class AboutActivity extends BaseActivity { + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_about); + + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); + Intent intent = getIntent(); + boolean night_change; + if (intent.getExtras() != null) + night_change = intent.getBooleanExtra("night_change", false); + else night_change = false; + + Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); + setSupportActionBar(myToolbar); + Objects.requireNonNull(getSupportActionBar()).setHomeButtonEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + if (isNightMode()) + myToolbar.setNavigationIcon(getDrawable(R.drawable.ic_more)); + else myToolbar.setNavigationIcon(getDrawable(R.drawable.ic_more)); + } + + @Override + protected void needRefresh() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/cc/liuyx/note/activity/MainActivity.java b/app/src/main/java/cc/liuyx/note/activity/MainActivity.java index 322fed3..4fc7889 100644 --- a/app/src/main/java/cc/liuyx/note/activity/MainActivity.java +++ b/app/src/main/java/cc/liuyx/note/activity/MainActivity.java @@ -47,13 +47,13 @@ import android.widget.TextView; import android.widget.Toast; import cc.liuyx.note.alarm.AlarmReceiver; -import cc.liuyx.note.alarm.EditAlarmActivity; -import cc.liuyx.note.alarm.Plan; -import cc.liuyx.note.alarm.PlanAdapter; -import cc.liuyx.note.alarm.PlanDatabase; +import cc.liuyx.note.db.PlanDatabase; +import cc.liuyx.note.entity.Plan; +import cc.liuyx.note.adapter.PlanAdapter; +import cc.liuyx.note.db.PlanCRUD; import cc.liuyx.note.adapter.NoteAdapter; import cc.liuyx.note.adapter.TagAdapter; -import cc.liuyx.note.db.CRUD; +import cc.liuyx.note.db.NoteCRUD; import cc.liuyx.note.db.NoteDatabase; import cc.liuyx.note.entity.Note; @@ -105,6 +105,8 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O private TextView setting_text; private ImageView setting_image; + private TextView about_text; + private ImageView about_image; private ListView lv_tag; private TextView add_tag; @@ -161,6 +163,10 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O setting_text = customView.findViewById(R.id.setting_settings_text); setting_image = customView.findViewById(R.id.setting_settings_image); + + about_image = customView.findViewById(R.id.setting_about_image); + about_text = customView.findViewById(R.id.setting_about_text); + lv_tag = customView.findViewById(R.id.lv_tag); add_tag = customView.findViewById(R.id.add_tag); @@ -170,7 +176,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O if (sharedPreferences.getString("tagListString", "").split("_").length < 8) { final EditText et = new EditText(context); new AlertDialog.Builder(MainActivity.this) - .setMessage("Enter the name of tag") + .setMessage("输入标签名") .setView(et) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override @@ -184,7 +190,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O String newTagListString = oldTagListString + "_" + name; SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("tagListString", newTagListString); - editor.commit(); + editor.apply(); refreshTagList(); } else Toast.makeText(context, "Repeated tag!", Toast.LENGTH_SHORT).show(); @@ -254,7 +260,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O Note temp = noteList.get(i); if (temp.getTag() == tag) { temp.setTag(1); - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); op.updateNote(temp); op.close(); @@ -268,7 +274,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O Note temp = noteList.get(i); if (temp.getTag() == j) { temp.setTag(j - 1); - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); op.updateNote(temp); op.close(); @@ -278,14 +284,13 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } //edit the preference - List newTagList = new ArrayList<>(); - newTagList.addAll(tagList); + List newTagList = new ArrayList<>(tagList); newTagList.remove(position); String newTagListString = TextUtils.join("_", newTagList); Log.d(TAG, "onClick: " + newTagListString); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("tagListString", newTagListString); - editor.commit(); + editor.apply(); refreshTagList(); } @@ -304,7 +309,6 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } }); - setting_text.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -322,8 +326,24 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } }); + about_text.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(MainActivity.this, AboutActivity.class)); + overridePendingTransition(R.anim.in_lefttoright, R.anim.no); + } + }); + + about_image.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(MainActivity.this, AboutActivity.class)); + overridePendingTransition(R.anim.in_lefttoright, R.anim.no); + } + }); coverView.setOnTouchListener(new View.OnTouchListener() { + @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { popupWindow.dismiss(); @@ -408,7 +428,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("content_switch", isChecked); - editor.commit(); + editor.apply(); refreshLvVisibility(); } }); @@ -426,7 +446,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O fab_alarm.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(MainActivity.this, EditAlarmActivity.class); + Intent intent = new Intent(MainActivity.this, UserSettingsActivity.EditAlarmActivity.class); intent.putExtra("mode", 2); // MODE of 'new plan' startActivityForResult(intent, 1); overridePendingTransition(R.anim.in_righttoleft, R.anim.no); @@ -441,7 +461,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O setSupportActionBar(myToolbar); - getSupportActionBar().setHomeButtonEnabled(true); + Objects.requireNonNull(getSupportActionBar()).setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); //设置toolbar取代actionbar initPopupView(); } @@ -482,32 +502,32 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O SharedPreferences.Editor editor = sharedPreferences.edit(); if (!sharedPreferences.contains("nightMode")) { editor.putBoolean("nightMode", false); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("reverseSort")) { editor.putBoolean("reverseSort", false); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("fabColor")) { editor.putInt("fabColor", -500041); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("tagListString")) { String s = "no tag_life_study_work_play"; editor.putString("tagListString", s); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("content_switch")) { editor.putBoolean("content_switch", false); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("fabPlanColor")) { editor.putInt("fabPlanColor", -500041); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("noteTitle")) { editor.putBoolean("noteTitle", true); - editor.commit(); + editor.apply(); } @@ -549,9 +569,9 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("Delete all " + itemName); builder.setIcon(R.drawable.ic_error_outline_black_24dp); - builder.setItems(list_String, new DialogInterface.OnClickListener() {//列表对话框; + builder.setItems(list_String, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialog, final int which) {//根据这里which值,即可以指定是点击哪一个Item; + public void onClick(DialogInterface dialog, final int which) { new AlertDialog.Builder(MainActivity.this) .setMessage("Do you want to delete all " + itemName + " " + list_String[which] + "? ") .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { @@ -563,6 +583,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } //根据模式与时长删除对顶的计划s/笔记s + @SuppressLint("Range") private void removeSelectItems(int which, int mode) { int monthNum = 0; switch (which) { @@ -582,14 +603,14 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O Calendar rightNow = Calendar.getInstance(); rightNow.add(Calendar.MONTH, -monthNum);//日期加3个月 Date selectDate = rightNow.getTime(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @SuppressLint("SimpleDateFormat") SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String selectDateStr = simpleDateFormat.format(selectDate); Log.d(TAG, "removeSelectItems: " + selectDateStr); switch (mode) { case 1: //notes dbHelper = new NoteDatabase(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); - Cursor cursor = db.rawQuery("select * from notes", null); + @SuppressLint("Recycle") Cursor cursor = db.rawQuery("select * from notes", null); while (cursor.moveToNext()) { if (cursor.getString(cursor.getColumnIndex(NoteDatabase.TIME)).compareTo(selectDateStr) < 0) { db.delete("notes", NoteDatabase.ID + "=?", new String[]{Long.toString(cursor.getLong(cursor.getColumnIndex(NoteDatabase.ID)))}); @@ -601,7 +622,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O case 2: //plans planDbHelper = new PlanDatabase(context); SQLiteDatabase pdb = planDbHelper.getWritableDatabase(); - Cursor pcursor = pdb.rawQuery("select * from plans", null); + @SuppressLint("Recycle") Cursor pcursor = pdb.rawQuery("select * from plans", null); while (pcursor.moveToNext()) { if (pcursor.getString(pcursor.getColumnIndex(PlanDatabase.TIME)).compareTo(selectDateStr) < 0) { pdb.delete("plans", PlanDatabase.ID + "=?", new String[]{Long.toString(pcursor.getLong(pcursor.getColumnIndex(PlanDatabase.ID)))}); @@ -635,6 +656,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } + @SuppressLint("NonConstantResourceId") @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -647,8 +669,8 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O public void onClick(DialogInterface dialog, int which) { dbHelper = new NoteDatabase(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); - db.delete("notes", null, null);//delete data in table NOTES - db.execSQL("update sqlite_sequence set seq=0 where name='notes'"); //reset id to 1 + db.delete("notes", null, null); + db.execSQL("update sqlite_sequence set seq=0 where name='notes'"); refreshListView(); } }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { @@ -665,8 +687,8 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O public void onClick(DialogInterface dialog, int which) { planDbHelper = new PlanDatabase(context); SQLiteDatabase db = planDbHelper.getWritableDatabase(); - db.delete("plans", null, null);//delete data in table NOTES - db.execSQL("update sqlite_sequence set seq=0 where name='plans'"); //reset id to 1 + db.delete("plans", null, null); + db.execSQL("update sqlite_sequence set seq=0 where name='plans'"); refreshListView(); } }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { @@ -679,7 +701,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O break; case R.id.refresh: - myToolbar.setTitle("All Notes"); + myToolbar.setTitle("所有笔记"); lv.setAdapter(adapter); break; } @@ -694,7 +716,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O int fabPlanColor = sharedPreferences.getInt("fabPlanColor", -500041); chooseFabPlanColor(fabPlanColor); //initialize CRUD - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); // set adapter @@ -705,7 +727,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O op.close(); adapter.notifyDataSetChanged(); - cc.liuyx.note.alarm.CRUD op1 = new cc.liuyx.note.alarm.CRUD(context); + PlanCRUD op1 = new PlanCRUD(context); op1.open(); if (planList.size() > 0) { cancelAlarms(planList);//删除所有闹钟 @@ -801,6 +823,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } //click item in listView + @SuppressLint("NonConstantResourceId") @Override public void onItemClick(AdapterView parent, View view, int position, long id) { switch (parent.getId()) { @@ -817,7 +840,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O break; case R.id.lv_plan: Plan curPlan = (Plan) parent.getItemAtPosition(position); - Intent intent1 = new Intent(MainActivity.this, EditAlarmActivity.class); + Intent intent1 = new Intent(MainActivity.this, UserSettingsActivity.EditAlarmActivity.class); intent1.putExtra("title", curPlan.getTitle()); intent1.putExtra("content", curPlan.getContent()); intent1.putExtra("time", curPlan.getTime()); @@ -834,6 +857,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O int returnMode; long note_Id; + assert data != null; returnMode = data.getExtras().getInt("mode", -1); note_Id = data.getExtras().getLong("id", 0); if (returnMode == 1) { //update current note @@ -843,7 +867,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O int tag = data.getExtras().getInt("tag", 1); Note newNote = new Note(content, time, tag); newNote.setId(note_Id); - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); op.updateNote(newNote); achievement.editNote(op.getNote(note_Id).getContent(), content); @@ -852,7 +876,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O } else if (returnMode == 2) { //delete current note Note curNote = new Note(); curNote.setId(note_Id); - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); op.removeNote(curNote); op.close(); @@ -862,7 +886,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O String time = data.getExtras().getString("time"); int tag = data.getExtras().getInt("tag", 1); Note newNote = new Note(content, time, tag); - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); op.addNote(newNote); op.close(); @@ -874,14 +898,14 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O Log.d(TAG, time); Plan plan = new Plan(title, content, time); plan.setId(note_Id); - cc.liuyx.note.alarm.CRUD op = new cc.liuyx.note.alarm.CRUD(context); + PlanCRUD op = new PlanCRUD(context); op.open(); op.updatePlan(plan); op.close(); } else if (returnMode == 12) {//delete existing plan Plan plan = new Plan(); plan.setId(note_Id); - cc.liuyx.note.alarm.CRUD op = new cc.liuyx.note.alarm.CRUD(context); + PlanCRUD op = new PlanCRUD(context); op.open(); op.removePlan(plan); op.close(); @@ -890,28 +914,28 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O String content = data.getExtras().getString("content", null); String time = data.getExtras().getString("time", null); Plan newPlan = new Plan(title, content, time); - cc.liuyx.note.alarm.CRUD op = new cc.liuyx.note.alarm.CRUD(context); + PlanCRUD op = new PlanCRUD(context); op.open(); op.addPlan(newPlan); Log.d(TAG, "onActivityResult: " + time); op.close(); - } else { } refreshListView(); } //longclick item in listView + @SuppressLint("NonConstantResourceId") @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { switch (parent.getId()) { case R.id.lv: final Note note = noteList.get(position); new AlertDialog.Builder(MainActivity.this) - .setMessage("Do you want to delete this note ?") + .setMessage("你想要删除这条笔记吗?") .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - CRUD op = new CRUD(context); + NoteCRUD op = new NoteCRUD(context); op.open(); op.removeNote(note); op.close(); @@ -927,12 +951,12 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O case R.id.lv_plan: final Plan plan = planList.get(position); new AlertDialog.Builder(MainActivity.this) - .setMessage("Do you want to delete this plan ?") + .setMessage("你想要删除这条计划吗?") .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - cc.liuyx.note.alarm.CRUD op = new cc.liuyx.note.alarm.CRUD(context); + PlanCRUD op = new PlanCRUD(context); op.open(); op.removePlan(plan); op.close(); @@ -1021,9 +1045,12 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O Calendar c = p.getPlanTime(); if (!c.before(Calendar.getInstance())) { Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); - intent.putExtra("title", p.getTitle()); - intent.putExtra("content", p.getContent()); - intent.putExtra("id", (int) p.getId()); + Bundle data = new Bundle(); + data.putString("title", p.getTitle()); + data.putString("title", p.getTitle()); + data.putString("content", p.getContent()); + data.putInt("id", (int) p.getId()); + intent.putExtras(data); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, (int) p.getId(), intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE); alarmManager.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent); @@ -1059,7 +1086,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O //achievement system public class Achievement { - private SharedPreferences sharedPreferences; + private final SharedPreferences sharedPreferences; private int noteNumber; private int wordNumber; @@ -1084,27 +1111,27 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O SharedPreferences.Editor editor = sharedPreferences.edit(); if (!sharedPreferences.contains("noteLevel")) { editor.putInt("noteLevel", 0); - editor.commit(); + editor.apply(); if (!sharedPreferences.contains("wordLevel")) { editor.putInt("wordLevel", 0); - editor.commit(); + editor.apply(); addCurrent(noteList); if (sharedPreferences.contains("maxRemainNumber")) { editor.remove("maxRemainNumber"); - editor.commit(); + editor.apply(); } if (sharedPreferences.contains("remainNumber")) { editor.remove("remainNumber"); - editor.commit(); + editor.apply(); } if (!sharedPreferences.contains("noteNumber")) { editor.putInt("noteNumber", 0); - editor.commit(); + editor.apply(); addCurrent(noteList); if (!sharedPreferences.contains("wordNumber")) { editor.putInt("wordNumber", 0); - editor.commit(); + editor.apply(); } } @@ -1132,7 +1159,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O else if (wordCount >= 1000) editor.putInt("noteLevel", 3); else if (wordCount >= 500) editor.putInt("noteLevel", 2); else if (wordCount >= 100) editor.putInt("noteLevel", 1); - editor.commit(); + editor.apply(); } //添加笔记 @@ -1144,7 +1171,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O wordNumber += content.length(); editor.putInt("wordNumber", wordNumber); - editor.commit(); + editor.apply(); } //删除笔记 @@ -1158,7 +1185,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O SharedPreferences.Editor editor = sharedPreferences.edit(); wordNumber += (newContent.length() - oldContent.length()); editor.putInt("wordNumber", wordNumber); - editor.commit(); + editor.apply(); } } @@ -1231,12 +1258,12 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O case 1: noteLevel++; editor.putInt("noteLevel", noteLevel); - editor.commit(); + editor.apply(); break; case 2: wordLevel++; editor.putInt("wordLevel", wordLevel); - editor.commit(); + editor.apply(); break; } } @@ -1257,7 +1284,7 @@ public class MainActivity extends BaseActivity implements OnItemClickListener, O editor.putInt("wordNumber", wordNumber); editor.putInt("noteLevel", 0); editor.putInt("wordLevel", 0); - editor.commit(); + editor.apply(); } } diff --git a/app/src/main/java/cc/liuyx/note/activity/UserSettingsActivity.java b/app/src/main/java/cc/liuyx/note/activity/UserSettingsActivity.java index f37aeb7..b9ff80a 100644 --- a/app/src/main/java/cc/liuyx/note/activity/UserSettingsActivity.java +++ b/app/src/main/java/cc/liuyx/note/activity/UserSettingsActivity.java @@ -1,20 +1,37 @@ package cc.liuyx.note.activity; +import android.app.DatePickerDialog; +import android.app.TimePickerDialog; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.annotation.Nullable; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.Toolbar; +import android.util.Log; import android.view.KeyEvent; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; +import android.widget.Button; import android.widget.CompoundButton; +import android.widget.DatePicker; +import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Switch; +import android.widget.TextView; +import android.widget.TimePicker; +import android.widget.Toast; import com.example.atry.R; +import java.util.Calendar; import java.util.Objects; +import cc.liuyx.note.entity.Plan; + public class UserSettingsActivity extends BaseActivity { private Switch nightMode; @@ -171,4 +188,305 @@ public class UserSettingsActivity extends BaseActivity { } + public static class EditAlarmActivity extends BaseActivity implements View.OnClickListener { + + private DatePickerDialog.OnDateSetListener dateSetListener; + private TimePickerDialog.OnTimeSetListener timeSetListener; + private EditText et_title; + private EditText et; + private Button set_date; + private Button set_time; + + + + private TextView date; + private TextView time; + private Plan plan; + private int[] dateArray = new int[3]; + private int[] timeArray = new int[2]; + + private int openMode = 0; + private String old_title = ""; + private String old_content = ""; + private String old_time = ""; + private long id = 0; + private boolean timeChange = false; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.edit_alarm_layout); + + Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); + setSupportActionBar(myToolbar); + getSupportActionBar().setHomeButtonEnabled(true); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + init(); + + final Intent intent = getIntent(); + openMode = intent.getExtras().getInt("mode", 0); + if(openMode == 1){ + id = intent.getLongExtra("id", 0); + old_title = intent.getStringExtra("title"); + old_content = intent.getStringExtra("content"); + old_time = intent.getStringExtra("time"); + et_title.setText(old_title); + et_title.setSelection(old_title.length()); + et.setText(old_content); + et.setSelection(old_content.length()); + + String[] wholeTime = old_time.split(" "); + String[] temp = wholeTime[0].split("-"); + String[] temp1 = wholeTime[1].split(":"); + setDateTV(Integer.parseInt(temp[0]), Integer.parseInt(temp[1]), Integer.parseInt(temp[2])); + setTimeTV(Integer.parseInt(temp1[0]), Integer.parseInt(temp1[1])); + } + + if(isNightMode()) myToolbar.setNavigationIcon(getDrawable(R.drawable.ic_keyboard_arrow_left_white_24dp)); + else myToolbar.setNavigationIcon(getDrawable(R.drawable.ic_keyboard_arrow_left_black_24dp)); + + myToolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(!canBeSet()) { + Toast.makeText(EditAlarmActivity.this, "Invalid Time", Toast.LENGTH_SHORT).show(); + }else if(et.getText().toString().length() + et_title.getText().toString().length() == 0 && openMode == 2){ + Intent intent1 = new Intent(); + intent1.putExtra("mode", -1);//nothing new happens. + setResult(RESULT_OK, intent1); + finish();//返回 + overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); + } + else if (et_title.getText().toString().length() == 0) { + Toast.makeText(EditAlarmActivity.this, "Title cannot be empty", Toast.LENGTH_SHORT).show(); + } + else { + isTimeChange(); + Intent intent = new Intent(); + if (openMode == 2) { + intent.putExtra("mode", 10); // new one plan; + intent.putExtra("title", et_title.getText().toString()); + intent.putExtra("content", et.getText().toString()); + intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); + Log.d(TAG, date.getText().toString() + time.getText().toString()); + } else { + if (et.getText().toString().equals(old_content) && et_title.getText().toString().equals(old_title) && !timeChange) { + intent.putExtra("mode", -1); // edit nothing + } + else { + intent.putExtra("mode", 11); //edit the content + intent.putExtra("title", et_title.getText().toString()); + intent.putExtra("content", et.getText().toString()); + intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); + intent.putExtra("id", id); + } + } + setResult(RESULT_OK, intent); + finish();//返回 + overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); + } + } + }); + + } + + public boolean onKeyDown(int keyCode, KeyEvent event) { + + if( keyCode== KeyEvent.KEYCODE_HOME){ + return true; + } else if( keyCode== KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ + if(!canBeSet()) { + Toast.makeText(EditAlarmActivity.this, "Invalid Time", Toast.LENGTH_SHORT).show(); + }else if(et.getText().toString().length() + et_title.getText().toString().length() == 0 && openMode == 2){ + Intent intent1 = new Intent(); + intent1.putExtra("mode", -1);//nothing new happens. + setResult(RESULT_OK, intent1); + finish();//返回 + overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); + } + else if (et_title.getText().toString().length() == 0) { + Toast.makeText(EditAlarmActivity.this, "Title cannot be empty", Toast.LENGTH_SHORT).show(); + } + else { + isTimeChange(); + Intent intent = new Intent(); + if (openMode == 2) { + intent.putExtra("mode", 10); // new one plan; + intent.putExtra("title", et_title.getText().toString()); + intent.putExtra("content", et.getText().toString()); + intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); + Log.d(TAG, date.getText().toString() + time.getText().toString()); + } else { + if (et.getText().toString().equals(old_content) && et_title.getText().toString().equals(old_title) && !timeChange) { + intent.putExtra("mode", -1); // edit nothing + } + else { + intent.putExtra("mode", 11); //edit the content + intent.putExtra("title", et_title.getText().toString()); + intent.putExtra("content", et.getText().toString()); + intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); + intent.putExtra("id", id); + } + } + setResult(RESULT_OK, intent); + finish();//返回 + overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); + } + } + return super.onKeyDown(keyCode, event); + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.edit_menu, menu); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + final Intent intent = new Intent(); + switch (item.getItemId()){ + case R.id.delete: + new AlertDialog.Builder(EditAlarmActivity.this) + .setMessage("Delete this plan ?") + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + if(openMode == 2){ + intent.putExtra("mode", -1); // delete the plan + setResult(RESULT_OK, intent); + } + else { + intent.putExtra("mode", 12); // delete the plan + intent.putExtra("id", id); + setResult(RESULT_OK, intent); + } + finish(); + } + }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }).create().show(); + break; + } + return super.onOptionsItemSelected(item); + } + + @Override + protected void needRefresh() { + setNightMode(); + startActivity(new Intent(this, EditAlarmActivity.class)); + overridePendingTransition(R.anim.night_switch, R.anim.night_switch_over); + finish(); + } + + private void init(){ + + plan = new Plan(); + dateArray[0] = plan.getYear(); + dateArray[1] = plan.getMonth() + 1; + dateArray[2] = plan.getDay(); + timeArray[0] = plan.getHour(); + timeArray[1] = plan.getMinute(); + + et_title = findViewById(R.id.et_title); + et = findViewById(R.id.et); + set_date = findViewById(R.id.set_date); + set_time = findViewById(R.id.set_time); + date = findViewById(R.id.date); + time = findViewById(R.id.time); + + //initialize two textviews + setDateTV(dateArray[0], dateArray[1], dateArray[2]); + setTimeTV((timeArray[1]>54? timeArray[0]+1 : timeArray[0]), (timeArray[1]+5)%60); + Log.d(TAG, "init: "+dateArray[1]); + + set_date.setOnClickListener(this); + set_time.setOnClickListener(this); + + dateSetListener = new DatePickerDialog.OnDateSetListener() { + @Override + public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { + setDateTV(year, month+1, dayOfMonth); + + } + }; + timeSetListener = new TimePickerDialog.OnTimeSetListener() { + @Override + public void onTimeSet(TimePicker view, int hourOfDay, int minute) { + setTimeTV(hourOfDay, minute); + } + }; + } + + private void setDateTV(int y, int m, int d){ + //update tv and dateArray + String temp = y + "-"; + if(m<10) temp += "0"; + temp += (m + "-"); + if(d<10) temp +="0"; + temp += d; + date.setText(temp); + dateArray[0] = y; + dateArray[1] = m; + dateArray[2] = d; + } + + private void setTimeTV(int h, int m){ + //update tv and timeArra + String temp = ""; + if(h<10) temp += "0"; + temp += (h + ":"); + if(m<10) temp += "0"; + temp += m; + time.setText(temp); + timeArray[0] = h; + timeArray[1] = m; + } + + @Override + public void onClick(View v) { + switch (v.getId()){ + case R.id.set_date: //choose day + DatePickerDialog dialog = new DatePickerDialog(EditAlarmActivity.this, + (isNightMode()?R.style.NightDialogTheme :R.style.DayDialogTheme), dateSetListener, + dateArray[0], dateArray[1] - 1, dateArray[2]); + //dialog.getWindow().setBackgroundDrawable(new ColorDrawable((isNightMode()?Color.BLACK : Color.WHITE))); + dialog.show(); + break; + case R.id.set_time://choose hour and minute + TimePickerDialog dialog1 = new TimePickerDialog(EditAlarmActivity.this, + (isNightMode()?R.style.NightDialogTheme :R.style.DayDialogTheme), timeSetListener, + timeArray[0], timeArray[1], true); + //dialog1.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog1.show(); + break; + } + } + + private void isTimeChange(){ + String newTime = date.getText().toString() + " " + time.getText().toString(); + if(!newTime.equals(old_time)) timeChange = true; + } + + private boolean canBeSet(){ + Calendar calendar = Calendar.getInstance(); + calendar.set(dateArray[0], dateArray[1] - 1, dateArray[2], timeArray[0], timeArray[1]); + Calendar cur = Calendar.getInstance(); + Log.d(TAG, "canBeSet: " + cur.getTime().toString() + calendar.getTime().toString()); + if(cur.before(calendar)) return true; + else { + Toast.makeText(this, "Invalid Time", Toast.LENGTH_SHORT).show(); + return false; + } + } + + + + } } diff --git a/app/src/main/java/cc/liuyx/note/alarm/PlanAdapter.java b/app/src/main/java/cc/liuyx/note/adapter/PlanAdapter.java similarity index 98% rename from app/src/main/java/cc/liuyx/note/alarm/PlanAdapter.java rename to app/src/main/java/cc/liuyx/note/adapter/PlanAdapter.java index a486097..ba9a0a3 100644 --- a/app/src/main/java/cc/liuyx/note/alarm/PlanAdapter.java +++ b/app/src/main/java/cc/liuyx/note/adapter/PlanAdapter.java @@ -1,4 +1,4 @@ -package cc.liuyx.note.alarm; +package cc.liuyx.note.adapter; import android.content.Context; import android.content.SharedPreferences; @@ -16,6 +16,8 @@ import com.example.atry.R; import java.util.ArrayList; import java.util.List; +import cc.liuyx.note.entity.Plan; + public class PlanAdapter extends BaseAdapter implements Filterable { private Context mContext; diff --git a/app/src/main/java/cc/liuyx/note/adapter/adapter.plantuml b/app/src/main/java/cc/liuyx/note/adapter/adapter.plantuml deleted file mode 100644 index eb44e7e..0000000 --- a/app/src/main/java/cc/liuyx/note/adapter/adapter.plantuml +++ /dev/null @@ -1,63 +0,0 @@ -@startuml - -title __ADAPTER's Class Diagram__\n - - namespace cc.liuyx.note { - namespace adapter { - class cc.liuyx.note.adapter.NoteAdapter { - - backList : List - - mContext : Context - - noteList : List - + NoteAdapter() - + getCount() - + getFilter() - + getItem() - + getItemId() - + getView() - } - } - } - - - namespace cc.liuyx.note { - namespace adapter { - class cc.liuyx.note.adapter.NoteAdapter.MyFilter { - # performFiltering() - # publishResults() - } - } - } - - - namespace cc.liuyx.note { - namespace adapter { - class cc.liuyx.note.adapter.TagAdapter { - - context : Context - - numList : List - - tagList : List - + TagAdapter() - + getCount() - + getItem() - + getItemId() - + getView() - } - } - } - - - cc.liuyx.note.adapter.NoteAdapter .up.|> android.widget.Filterable - cc.liuyx.note.adapter.NoteAdapter -up-|> android.widget.BaseAdapter - cc.liuyx.note.adapter.NoteAdapter o-- cc.liuyx.note.adapter.NoteAdapter.MyFilter : mFilter - cc.liuyx.note.adapter.NoteAdapter +-down- cc.liuyx.note.adapter.NoteAdapter.MyFilter - cc.liuyx.note.adapter.NoteAdapter.MyFilter -up-|> android.widget.Filter - cc.liuyx.note.adapter.TagAdapter -up-|> android.widget.BaseAdapter - - -right footer - - -PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it) -For more information about this tool, please contact philippe.mesmeur@gmail.com -endfooter - -@enduml diff --git a/app/src/main/java/cc/liuyx/note/alarm/AlarmReceiver.java b/app/src/main/java/cc/liuyx/note/alarm/AlarmReceiver.java index 3ef3fa8..ef6c740 100644 --- a/app/src/main/java/cc/liuyx/note/alarm/AlarmReceiver.java +++ b/app/src/main/java/cc/liuyx/note/alarm/AlarmReceiver.java @@ -8,6 +8,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Build; +import android.os.Bundle; import android.support.v4.app.NotificationCompat; import cc.liuyx.note.activity.MainActivity; @@ -15,13 +16,14 @@ import com.example.atry.R; public class AlarmReceiver extends BroadcastReceiver { - private String channelId = "Piggy Notes"; - private String name = "ChannelName"; + private String channelId = "JNote"; + private String name = "Liuyx"; @Override public void onReceive(Context context, Intent intent) { - String title = intent.getExtras().getString("title"); - String content = intent.getExtras().getString("content"); - int id = intent.getExtras().getInt("id"); + Bundle data = intent.getExtras(); + String title = data.getString("title"); + String content = data.getString("content"); + int id = data.getInt("id"); Intent intent1 = new Intent(context, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, id, intent1, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE); diff --git a/app/src/main/java/cc/liuyx/note/alarm/EditAlarmActivity.java b/app/src/main/java/cc/liuyx/note/alarm/EditAlarmActivity.java deleted file mode 100644 index 67f2531..0000000 --- a/app/src/main/java/cc/liuyx/note/alarm/EditAlarmActivity.java +++ /dev/null @@ -1,329 +0,0 @@ -package cc.liuyx.note.alarm; - -import android.app.DatePickerDialog; -import android.app.TimePickerDialog; -import android.content.DialogInterface; -import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.app.AlertDialog; -import android.support.v7.widget.Toolbar; -import android.util.Log; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; -import android.widget.DatePicker; -import android.widget.EditText; -import android.widget.TextView; -import android.widget.TimePicker; -import android.widget.Toast; - -import cc.liuyx.note.activity.BaseActivity; - -import com.example.atry.R; - -import java.util.Calendar; - -public class EditAlarmActivity extends BaseActivity implements View.OnClickListener { - - private DatePickerDialog.OnDateSetListener dateSetListener; - private TimePickerDialog.OnTimeSetListener timeSetListener; - private EditText et_title; - private EditText et; - private Button set_date; - private Button set_time; - - - - private TextView date; - private TextView time; - private Plan plan; - private int[] dateArray = new int[3]; - private int[] timeArray = new int[2]; - - private int openMode = 0; - private String old_title = ""; - private String old_content = ""; - private String old_time = ""; - private long id = 0; - private boolean timeChange = false; - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.edit_alarm_layout); - - Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); - setSupportActionBar(myToolbar); - getSupportActionBar().setHomeButtonEnabled(true); - - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - - init(); - - final Intent intent = getIntent(); - openMode = intent.getExtras().getInt("mode", 0); - if(openMode == 1){ - id = intent.getLongExtra("id", 0); - old_title = intent.getStringExtra("title"); - old_content = intent.getStringExtra("content"); - old_time = intent.getStringExtra("time"); - et_title.setText(old_title); - et_title.setSelection(old_title.length()); - et.setText(old_content); - et.setSelection(old_content.length()); - - String[] wholeTime = old_time.split(" "); - String[] temp = wholeTime[0].split("-"); - String[] temp1 = wholeTime[1].split(":"); - setDateTV(Integer.parseInt(temp[0]), Integer.parseInt(temp[1]), Integer.parseInt(temp[2])); - setTimeTV(Integer.parseInt(temp1[0]), Integer.parseInt(temp1[1])); - } - - if(isNightMode()) myToolbar.setNavigationIcon(getDrawable(R.drawable.ic_keyboard_arrow_left_white_24dp)); - else myToolbar.setNavigationIcon(getDrawable(R.drawable.ic_keyboard_arrow_left_black_24dp)); - - myToolbar.setNavigationOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if(!canBeSet()) { - Toast.makeText(EditAlarmActivity.this, "Invalid Time", Toast.LENGTH_SHORT).show(); - }else if(et.getText().toString().length() + et_title.getText().toString().length() == 0 && openMode == 2){ - Intent intent1 = new Intent(); - intent1.putExtra("mode", -1);//nothing new happens. - setResult(RESULT_OK, intent1); - finish();//返回 - overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); - } - else if (et_title.getText().toString().length() == 0) { - Toast.makeText(EditAlarmActivity.this, "Title cannot be empty", Toast.LENGTH_SHORT).show(); - } - else { - isTimeChange(); - Intent intent = new Intent(); - if (openMode == 2) { - intent.putExtra("mode", 10); // new one plan; - intent.putExtra("title", et_title.getText().toString()); - intent.putExtra("content", et.getText().toString()); - intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); - Log.d(TAG, date.getText().toString() + time.getText().toString()); - } else { - if (et.getText().toString().equals(old_content) && et_title.getText().toString().equals(old_title) && !timeChange) { - intent.putExtra("mode", -1); // edit nothing - } - else { - intent.putExtra("mode", 11); //edit the content - intent.putExtra("title", et_title.getText().toString()); - intent.putExtra("content", et.getText().toString()); - intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); - intent.putExtra("id", id); - } - } - setResult(RESULT_OK, intent); - finish();//返回 - overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); - } - } - }); - - } - - public boolean onKeyDown(int keyCode, KeyEvent event) { - - if( keyCode== KeyEvent.KEYCODE_HOME){ - return true; - } else if( keyCode== KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ - if(!canBeSet()) { - Toast.makeText(EditAlarmActivity.this, "Invalid Time", Toast.LENGTH_SHORT).show(); - }else if(et.getText().toString().length() + et_title.getText().toString().length() == 0 && openMode == 2){ - Intent intent1 = new Intent(); - intent1.putExtra("mode", -1);//nothing new happens. - setResult(RESULT_OK, intent1); - finish();//返回 - overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); - } - else if (et_title.getText().toString().length() == 0) { - Toast.makeText(EditAlarmActivity.this, "Title cannot be empty", Toast.LENGTH_SHORT).show(); - } - else { - isTimeChange(); - Intent intent = new Intent(); - if (openMode == 2) { - intent.putExtra("mode", 10); // new one plan; - intent.putExtra("title", et_title.getText().toString()); - intent.putExtra("content", et.getText().toString()); - intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); - Log.d(TAG, date.getText().toString() + time.getText().toString()); - } else { - if (et.getText().toString().equals(old_content) && et_title.getText().toString().equals(old_title) && !timeChange) { - intent.putExtra("mode", -1); // edit nothing - } - else { - intent.putExtra("mode", 11); //edit the content - intent.putExtra("title", et_title.getText().toString()); - intent.putExtra("content", et.getText().toString()); - intent.putExtra("time", date.getText().toString() + " " + time.getText().toString()); - intent.putExtra("id", id); - } - } - setResult(RESULT_OK, intent); - finish();//返回 - overridePendingTransition(R.anim.in_lefttoright, R.anim.out_lefttoright); - } - } - return super.onKeyDown(keyCode, event); - } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.edit_menu, menu); - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - final Intent intent = new Intent(); - switch (item.getItemId()){ - case R.id.delete: - new AlertDialog.Builder(EditAlarmActivity.this) - .setMessage("Delete this plan ?") - .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if(openMode == 2){ - intent.putExtra("mode", -1); // delete the plan - setResult(RESULT_OK, intent); - } - else { - intent.putExtra("mode", 12); // delete the plan - intent.putExtra("id", id); - setResult(RESULT_OK, intent); - } - finish(); - } - }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }).create().show(); - break; - } - return super.onOptionsItemSelected(item); - } - - @Override - protected void needRefresh() { - setNightMode(); - startActivity(new Intent(this, EditAlarmActivity.class)); - overridePendingTransition(R.anim.night_switch, R.anim.night_switch_over); - finish(); - } - - private void init(){ - - plan = new Plan(); - dateArray[0] = plan.getYear(); - dateArray[1] = plan.getMonth() + 1; - dateArray[2] = plan.getDay(); - timeArray[0] = plan.getHour(); - timeArray[1] = plan.getMinute(); - - et_title = findViewById(R.id.et_title); - et = findViewById(R.id.et); - set_date = findViewById(R.id.set_date); - set_time = findViewById(R.id.set_time); - date = findViewById(R.id.date); - time = findViewById(R.id.time); - - //initialize two textviews - setDateTV(dateArray[0], dateArray[1], dateArray[2]); - setTimeTV((timeArray[1]>54? timeArray[0]+1 : timeArray[0]), (timeArray[1]+5)%60); - Log.d(TAG, "init: "+dateArray[1]); - - set_date.setOnClickListener(this); - set_time.setOnClickListener(this); - - dateSetListener = new DatePickerDialog.OnDateSetListener() { - @Override - public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { - setDateTV(year, month+1, dayOfMonth); - - } - }; - timeSetListener = new TimePickerDialog.OnTimeSetListener() { - @Override - public void onTimeSet(TimePicker view, int hourOfDay, int minute) { - setTimeTV(hourOfDay, minute); - } - }; - } - - private void setDateTV(int y, int m, int d){ - //update tv and dateArray - String temp = y + "-"; - if(m<10) temp += "0"; - temp += (m + "-"); - if(d<10) temp +="0"; - temp += d; - date.setText(temp); - dateArray[0] = y; - dateArray[1] = m; - dateArray[2] = d; - } - - private void setTimeTV(int h, int m){ - //update tv and timeArra - String temp = ""; - if(h<10) temp += "0"; - temp += (h + ":"); - if(m<10) temp += "0"; - temp += m; - time.setText(temp); - timeArray[0] = h; - timeArray[1] = m; - } - - @Override - public void onClick(View v) { - switch (v.getId()){ - case R.id.set_date: //choose day - DatePickerDialog dialog = new DatePickerDialog(EditAlarmActivity.this, - (isNightMode()?R.style.NightDialogTheme :R.style.DayDialogTheme), dateSetListener, - dateArray[0], dateArray[1] - 1, dateArray[2]); - //dialog.getWindow().setBackgroundDrawable(new ColorDrawable((isNightMode()?Color.BLACK : Color.WHITE))); - dialog.show(); - break; - case R.id.set_time://choose hour and minute - TimePickerDialog dialog1 = new TimePickerDialog(EditAlarmActivity.this, - (isNightMode()?R.style.NightDialogTheme :R.style.DayDialogTheme), timeSetListener, - timeArray[0], timeArray[1], true); - //dialog1.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - dialog1.show(); - break; - } - } - - private void isTimeChange(){ - String newTime = date.getText().toString() + " " + time.getText().toString(); - if(!newTime.equals(old_time)) timeChange = true; - } - - private boolean canBeSet(){ - Calendar calendar = Calendar.getInstance(); - calendar.set(dateArray[0], dateArray[1] - 1, dateArray[2], timeArray[0], timeArray[1]); - Calendar cur = Calendar.getInstance(); - Log.d(TAG, "canBeSet: " + cur.getTime().toString() + calendar.getTime().toString()); - if(cur.before(calendar)) return true; - else { - Toast.makeText(this, "Invalid Time", Toast.LENGTH_SHORT).show(); - return false; - } - } - - - -} diff --git a/app/src/main/java/cc/liuyx/note/db/CRUD.java b/app/src/main/java/cc/liuyx/note/db/NoteCRUD.java similarity index 97% rename from app/src/main/java/cc/liuyx/note/db/CRUD.java rename to app/src/main/java/cc/liuyx/note/db/NoteCRUD.java index efe7ff5..d3457a7 100644 --- a/app/src/main/java/cc/liuyx/note/db/CRUD.java +++ b/app/src/main/java/cc/liuyx/note/db/NoteCRUD.java @@ -12,7 +12,7 @@ import java.util.List; import cc.liuyx.note.entity.Note; -public class CRUD { +public class NoteCRUD { SQLiteOpenHelper dbHandler; SQLiteDatabase db; @@ -23,7 +23,7 @@ public class CRUD { NoteDatabase.MODE }; - public CRUD(Context context){ + public NoteCRUD(Context context){ dbHandler = new NoteDatabase(context); } @@ -32,7 +32,7 @@ public class CRUD { } public void close(){ - dbHandler.close(); +// dbHandler.close(); } public void addNote(Note note){ diff --git a/app/src/main/java/cc/liuyx/note/alarm/CRUD.java b/app/src/main/java/cc/liuyx/note/db/PlanCRUD.java similarity index 84% rename from app/src/main/java/cc/liuyx/note/alarm/CRUD.java rename to app/src/main/java/cc/liuyx/note/db/PlanCRUD.java index f48c18e..e220132 100644 --- a/app/src/main/java/cc/liuyx/note/alarm/CRUD.java +++ b/app/src/main/java/cc/liuyx/note/db/PlanCRUD.java @@ -1,5 +1,6 @@ -package cc.liuyx.note.alarm; +package cc.liuyx.note.db; +import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; @@ -8,7 +9,9 @@ import android.database.sqlite.SQLiteOpenHelper; import java.util.ArrayList; import java.util.List; -public class CRUD { +import cc.liuyx.note.entity.Plan; + +public class PlanCRUD { SQLiteOpenHelper dbHandler; SQLiteDatabase db; @@ -19,7 +22,7 @@ public class CRUD { PlanDatabase.TIME, }; - public CRUD(Context context){ + public PlanCRUD(Context context){ dbHandler = new PlanDatabase(context); } @@ -28,10 +31,10 @@ public class CRUD { } public void close(){ - dbHandler.close(); +// dbHandler.close(); } - public Plan addPlan(Plan plan){ + public void addPlan(Plan plan){ //add a plan object to database ContentValues contentValues = new ContentValues(); contentValues.put(PlanDatabase.TITLE, plan.getTitle()); @@ -39,18 +42,18 @@ public class CRUD { contentValues.put(PlanDatabase.TIME, plan.getTime()); long insertId = db.insert(PlanDatabase.TABLE_NAME, null, contentValues); plan.setId(insertId); - return plan; } public Plan getPlan(long id){ //get a plan from database using cursor index - Cursor cursor = db.query(PlanDatabase.TABLE_NAME,columns,PlanDatabase.ID + "=?", + @SuppressLint("Recycle") Cursor cursor = db.query(PlanDatabase.TABLE_NAME,columns, PlanDatabase.ID + "=?", new String[]{String.valueOf(id)},null,null, null, null); if (cursor != null) cursor.moveToFirst(); - Plan e = new Plan(cursor.getString(1),cursor.getString(2), cursor.getString(3)); - return e; + assert cursor != null; + return new Plan(cursor.getString(1),cursor.getString(2), cursor.getString(3)); } + @SuppressLint("Range") public List getAllPlans(){ Cursor cursor = db.query(PlanDatabase.TABLE_NAME,columns,null,null,null, null, null); diff --git a/app/src/main/java/cc/liuyx/note/alarm/PlanDatabase.java b/app/src/main/java/cc/liuyx/note/db/PlanDatabase.java similarity index 78% rename from app/src/main/java/cc/liuyx/note/alarm/PlanDatabase.java rename to app/src/main/java/cc/liuyx/note/db/PlanDatabase.java index 1faf3db..09df48c 100644 --- a/app/src/main/java/cc/liuyx/note/alarm/PlanDatabase.java +++ b/app/src/main/java/cc/liuyx/note/db/PlanDatabase.java @@ -1,8 +1,13 @@ -package cc.liuyx.note.alarm; +package cc.liuyx.note.db; +import android.annotation.SuppressLint; +import android.content.ContentValues; import android.content.Context; +import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + public class PlanDatabase extends SQLiteOpenHelper { @@ -14,13 +19,13 @@ public class PlanDatabase extends SQLiteOpenHelper { public static final String MODE = "mode"; - public PlanDatabase(Context context){ + public PlanDatabase(Context context) { super(context, "plans", null, 1); } @Override public void onCreate(SQLiteDatabase db) { - db.execSQL("CREATE TABLE "+ TABLE_NAME + db.execSQL("CREATE TABLE " + TABLE_NAME + "(" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + TITLE + " TEXT NOT NULL," diff --git a/app/src/main/java/cc/liuyx/note/alarm/Plan.java b/app/src/main/java/cc/liuyx/note/entity/Plan.java similarity index 98% rename from app/src/main/java/cc/liuyx/note/alarm/Plan.java rename to app/src/main/java/cc/liuyx/note/entity/Plan.java index 35d1ab0..dd1bac7 100644 --- a/app/src/main/java/cc/liuyx/note/alarm/Plan.java +++ b/app/src/main/java/cc/liuyx/note/entity/Plan.java @@ -1,4 +1,4 @@ -package cc.liuyx.note.alarm; +package cc.liuyx.note.entity; import android.util.Log; diff --git a/app/src/main/res/drawable/piggy.jpg b/app/src/main/res/drawable/piggy.jpg deleted file mode 100644 index 5f577efa82eaadae5f7fa1ca666a40fe06d8d641..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11624 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 V>SJDU!SDZ1)cF6p5BcTj{{s0Ov7G<_ diff --git a/app/src/main/res/drawable/note_shape.xml b/app/src/main/res/drawable/shape_note.xml similarity index 92% rename from app/src/main/res/drawable/note_shape.xml rename to app/src/main/res/drawable/shape_note.xml index 751c8be..1c1b5af 100644 --- a/app/src/main/res/drawable/note_shape.xml +++ b/app/src/main/res/drawable/shape_note.xml @@ -8,7 +8,7 @@ - +