Merge pull request '完成issue:新增老年人界面功能' (#5) from ranhao_branch into master

pull/8/head
ptgkr64sc 1 month ago
commit fc35706380

@ -22,4 +22,3 @@ public class MainActivity extends AppCompatActivity {
});
}
}

@ -91,4 +91,4 @@ public class Contact {
return null;
}
}
}
}

@ -70,7 +70,7 @@ public class Notes {
/**
* ID
*/
public static final int ID_TRASH_FOLER = -3;
public static final int ID_TRASH_FOLDER = -3;
/**
* Intent

@ -224,10 +224,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER =
"CREATE TRIGGER folder_move_notes_on_trash " +
" AFTER UPDATE ON " + TABLE.NOTE +
" WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
" WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLDER +
" BEGIN" +
" UPDATE " + TABLE.NOTE +
" SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
" SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLDER +
" WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
" END";
@ -311,7 +311,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
* create trash folder
*/
values.clear();
values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
values.put(NoteColumns.ID, Notes.ID_TRASH_FOLDER);
values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
db.insert(TABLE.NOTE, null, values);
}
@ -432,7 +432,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
+ " TEXT NOT NULL DEFAULT ''");
// add a trash system folder
ContentValues values = new ContentValues();
values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
values.put(NoteColumns.ID, Notes.ID_TRASH_FOLDER);
values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
db.insert(TABLE.NOTE, null, values);
}

@ -118,7 +118,7 @@ public class NotesProvider extends ContentProvider {
private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION
+ " FROM " + TABLE.NOTE
+ " WHERE " + NoteColumns.SNIPPET + " LIKE ?"
+ " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER
+ " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLDER
+ " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE;
/**

@ -324,7 +324,7 @@ public class GTaskManager {
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type<>? AND parent_id=?)", new String[] {
String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER)
String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLDER)
}, null);
if (c != null) {
while (c.moveToNext()) {
@ -354,7 +354,7 @@ public class GTaskManager {
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type=? AND parent_id<>?)", new String[] {
String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER)
String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLDER)
}, NoteColumns.TYPE + " DESC");
if (c != null) {
while (c.moveToNext()) {
@ -489,7 +489,7 @@ public class GTaskManager {
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type=? AND parent_id<>?)", new String[] {
String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)
String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLDER)
}, NoteColumns.TYPE + " DESC");
if (c != null) {
while (c.moveToNext()) {
@ -822,7 +822,7 @@ public class GTaskManager {
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type<>? AND parent_id<>?)", new String[] {
String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER)
String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLDER)
}, NoteColumns.TYPE + " DESC");
if (c != null) {
while (c.moveToNext()) {

@ -249,7 +249,7 @@ public class BackupUtils {
Notes.CONTENT_NOTE_URI,
NOTE_PROJECTION,
"(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND "
+ NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR "
+ NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLDER + ") OR "
+ NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null);
if (folderCursor != null) {
@ -370,4 +370,4 @@ public class BackupUtils {
return null;
}
}
}

@ -148,7 +148,7 @@ public class DataUtils {
Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI,
new String[] { "COUNT(*)" },
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?",
new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)},
new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLDER)},
null);
int count = 0;
@ -177,7 +177,7 @@ public class DataUtils {
// 查询指定ID和类型且不在回收站中的笔记
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
null,
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER,
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLDER,
new String [] {String.valueOf(type)},
null);
@ -243,7 +243,7 @@ public class DataUtils {
// 查询类型为文件夹、不在回收站中且名称匹配的记录
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null,
NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER +
" AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER +
" AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLDER +
" AND " + NoteColumns.SNIPPET + "=?",
new String[] { name }, null);
boolean exist = false;
@ -386,4 +386,4 @@ public class DataUtils {
}
return snippet;
}
}
}

@ -85,4 +85,4 @@ public class GTaskStringUtils {
public final static String META_HEAD_NOTE = "meta_note"; // 笔记元数据头
public final static String META_HEAD_DATA = "meta_data"; // 数据元数据头
public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; // 元数据笔记名称(用户不应修改或删除)
}
}

@ -268,4 +268,4 @@ public class ResourceParser {
return TEXTAPPEARANCE_RESOURCES.length;
}
}
}
}

@ -206,4 +206,4 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
mPlayer = null; // 置空引用
}
}
}
}

@ -87,4 +87,4 @@ public class AlarmInitReceiver extends BroadcastReceiver {
// 当设备重启后所有之前设置的AlarmManager闹钟都会被清除
// 所以需要这个Receiver来重新设置所有未触发的闹钟
}
}
}

@ -44,4 +44,4 @@ public class AlarmReceiver extends BroadcastReceiver {
// sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID)))
// 所以AlarmAlertActivity可以通过getIntent().getData()获取到笔记信息
}
}
}

@ -575,4 +575,4 @@ public class DateTimePicker extends FrameLayout {
getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute());
}
}
}
}

@ -138,4 +138,4 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
}
}
}
}

@ -88,4 +88,4 @@ public class DropdownMenu {
public void setTitle(CharSequence title) {
mButton.setText(title);
}
}
}

@ -133,4 +133,4 @@ public class FoldersListAdapter extends CursorAdapter {
mName.setText(name);
}
}
}
}

@ -53,6 +53,7 @@ import android.widget.TextView;
import android.widget.Toast;
import net.micode.notes.R;
import net.micode.notes.tool.ElderModeUtils;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.TextNote;
import net.micode.notes.model.WorkingNote;
@ -281,6 +282,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
protected void onResume() {
super.onResume();
initNoteScreen(); // 初始化笔记界面
// 每次恢复时应用老年人模式
ElderModeUtils.applyElderMode(this, findViewById(android.R.id.content));
}
/**
@ -438,6 +441,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list);
// 应用老年人模式
ElderModeUtils.applyElderMode(this, findViewById(android.R.id.content));
}
@Override
@ -449,7 +455,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
clearSettingState(); // 清除设置状态
}
/**
*
*/
@ -702,7 +708,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
} else {
// 同步模式:移动到回收站
if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) {
if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLDER)) {
Log.e(TAG, "Move notes to trash folder error, should not happens");
}
}
@ -1043,4 +1049,4 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private void showToast(int resId, int duration) {
Toast.makeText(this, resId, duration).show();
}
}
}

@ -291,4 +291,4 @@ public class NoteEditText extends EditText {
}
super.onCreateContextMenu(menu);
}
}
}

@ -347,4 +347,4 @@ public class NoteItemData {
public static int getNoteType(Cursor cursor) {
return cursor.getInt(TYPE_COLUMN);
}
}
}

@ -67,6 +67,7 @@ import net.micode.notes.gtask.remote.GTaskSyncService;
import net.micode.notes.model.WorkingNote;
import net.micode.notes.tool.BackupUtils;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ElderModeUtils;
import net.micode.notes.tool.ResourceParser;
import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute;
import net.micode.notes.widget.NoteWidgetProvider_2x;
@ -227,6 +228,13 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
// 启动异步查询笔记列表
startAsyncNotesListQuery();
}
@Override
protected void onResume() {
super.onResume();
// 每次恢复时应用老年人模式
ElderModeUtils.applyElderMode(this, findViewById(android.R.id.content));
}
/**
*
@ -252,6 +260,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
mTitleBar = (TextView) findViewById(R.id.tv_title_bar);
mState = ListEditState.NOTE_LIST; // 初始状态为普通笔记列表
mModeCallBack = new ModeCallback(); // 多选模式回调
// 应用老年人模式
ElderModeUtils.applyElderMode(this, findViewById(android.R.id.content));
}
/**
@ -551,7 +562,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
} else {
// 同步模式下将笔记移动到回收站
if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter
.getSelectedItemIds(), Notes.ID_TRASH_FOLER)) {
.getSelectedItemIds(), Notes.ID_TRASH_FOLDER)) {
Log.e(TAG, "Move notes to trash folder error, should not happens");
}
}
@ -593,7 +604,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
DataUtils.batchDeleteNotes(mContentResolver, ids);
} else {
// 同步模式下将文件夹移动到回收站
DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER);
DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLDER);
}
// 更新相关小部件
if (widgets != null) {
@ -1049,7 +1060,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
selection,
new String[] {
String.valueOf(Notes.TYPE_FOLDER),
String.valueOf(Notes.ID_TRASH_FOLER),
String.valueOf(Notes.ID_TRASH_FOLDER),
String.valueOf(mCurrentFolderId)
},
NoteColumns.MODIFIED_DATE + " DESC");
@ -1074,4 +1085,4 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
return false;
}
}
}

@ -248,4 +248,4 @@ public class NotesListAdapter extends CursorAdapter {
}
}
}
}
}

@ -162,4 +162,4 @@ public class NotesListItem extends LinearLayout {
public NoteItemData getItemData() {
return mItemData;
}
}
}

@ -16,7 +16,6 @@
package net.micode.notes.ui;
import androidx.core.content.ContextCompat;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.ActionBar;
@ -55,12 +54,14 @@ import net.micode.notes.gtask.remote.GTaskSyncService;
public class NotesPreferenceActivity extends PreferenceActivity {
// 偏好设置文件名
public static final String PREFERENCE_NAME = "notes_preferences";
// 同步账户名称的键
// 同步账户名称的键11
public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name";
// 上次同步时间的键
public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time";
// 背景颜色设置的键
public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear";
// 老年人模式的键
public static final String PREFERENCE_ELDER_MODE_KEY = "pref_key_elder_mode";
// 同步账户设置的键
private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key";
// 账户授权过滤器的键
@ -71,9 +72,6 @@ public class NotesPreferenceActivity extends PreferenceActivity {
private Account[] mOriAccounts; // 原始账户列表(用于检测新添加的账户)
private boolean mHasAddedAccount; // 标记是否添加了新账户
// 在文件顶部添加这个 import
// import androidx.core.content.ContextCompat;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
@ -86,28 +84,15 @@ public class NotesPreferenceActivity extends PreferenceActivity {
mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY);
mReceiver = new GTaskReceiver(); // 创建广播接收器
IntentFilter filter = new IntentFilter();
<<<<<<< HEAD
filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); // 注册同步服务广播
registerReceiver(mReceiver, filter); // 注册广播接收器
=======
filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME);
// 修复:兼容 Android 13+ 的广播注册方式
ContextCompat.registerReceiver(
this,
mReceiver,
filter,
null,
null,
ContextCompat.RECEIVER_NOT_EXPORTED // 内部广播,更安全
);
>>>>>>> ce8801278409c0c99db42eb507f3f732202b6249
mOriAccounts = null;
// 添加设置界面的头部视图
View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null);
getListView().addHeaderView(header, null, true);
}
@Override
protected void onResume() {
super.onResume();
@ -473,4 +458,4 @@ public class NotesPreferenceActivity extends PreferenceActivity {
return false;
}
}
}
}

@ -78,7 +78,7 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider {
PROJECTION,
// 查询条件小部件ID匹配且不在回收站中
NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?",
new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) },
new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLDER) },
null);
}
@ -179,4 +179,4 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider {
* @return Notes.TYPE_WIDGET_2X, Notes.TYPE_WIDGET_4X
*/
protected abstract int getWidgetType();
}
}

@ -68,4 +68,4 @@ public class NoteWidgetProvider_2x extends NoteWidgetProvider {
protected int getWidgetType() {
return Notes.TYPE_WIDGET_2X; // 返回2x小部件的类型标识
}
}
}

@ -68,4 +68,4 @@ public class NoteWidgetProvider_4x extends NoteWidgetProvider {
protected int getWidgetType() {
return Notes.TYPE_WIDGET_4X; // 返回4x小部件的类型标识
}
}
}

Loading…
Cancel
Save