Compare commits

..

38 Commits

Author SHA1 Message Date
huige 5ecb8c97d1 1
2 years ago
huige 81f90ebe4b Over
2 years ago
huige 715df5bfea 小组最终版!!!
2 years ago
huige 4f3aff5be0 11
2 years ago
huige e26d7a5c22 明辉项目
2 years ago
huige 6f2ffa6718 Merge branch 'develop' of https://bdgit.educoder.net/p3ail6tof/ghnb into develop
2 years ago
huige ae64f619b9 夏明辉的稳定版本
2 years ago
huige cd6d754b40 实现了更换图标+字数计算+欢迎界面
2 years ago
huige deb5ccda92 1
2 years ago
huige a85b070b2d 字数统计1
2 years ago
huige 645c2572e8 计算字数
2 years ago
huige 43269dd32c 2
2 years ago
huige de922e3830 1
2 years ago
huige 65fc34882a Merge branch 'wangshengyu_branch' into develop
2 years ago
huige 42fbbf537d 1
2 years ago
huige df516de99c 辉哥的笔记
2 years ago
huige 778f920508 可以跑
2 years ago
huige 324a531e59 同步!huige的代码没有问题
2 years ago
huige 6a8f7f7026 Squashed commit of the following:
2 years ago
huige 02b48391bb 直接重置为main
2 years ago
huige 2491233233 全部重来wc!
2 years ago
huige 8e9f1c80e7 Squashed commit of the following:
2 years ago
p3hn76oci 59b59908a3 ADD file via upload
2 years ago
huige f8e5637896 Squashed commit of the following:
2 years ago
huige 587fd4fe84 更新
2 years ago
huige c18d19e360 辉哥把一半ui包也标了
2 years ago
huige 469349bc8b 辉哥标记了tool包和model包,不影响使用
2 years ago
huige 50808f3830 更一下
2 years ago
huige ac1e4bf13c dasdas
2 years ago
huige 438d99d0a6 Merge branch 'main' of https://bdgit.educoder.net/p3ail6tof/ghnb into develop
2 years ago
huige 4b295056e4 芜湖
2 years ago
huige fb0589e948 辉哥
2 years ago
huige 48472f60b2 辉哥提交
2 years ago
plfeaxhzg 39740249a8 Delete 'PPT/开源软件泛读、标注和维护报告文档 .docx'
2 years ago
plfeaxhzg 614d8cda60 ADD some read work
2 years ago
huige 5127a67cf4 源码
2 years ago
huige 837944d4da 辉哥提交
2 years ago
p3hn76oci c6b97d70e7 Update README.md
2 years ago

Binary file not shown.

Binary file not shown.

@ -1,965 +0,0 @@
/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.micode.notes.ui;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.SearchManager;
import android.appwidget.AppWidgetManager;
import android.content.ContentUris;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.style.BackgroundColorSpan;
import android.text.style.ImageSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
/*gaoheng*/
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.TextNote;
import net.micode.notes.model.WorkingNote;
import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser;
import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
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 {
public TextView tvModified;
public ImageView ivAlertIcon;
public TextView tvAlertDate;
public ImageView ibSetBgColor;
}
private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
static {
sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW);
sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED);
sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE);
sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN);
sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE);
}
private static final Map<Integer, Integer> sBgSelectorSelectionMap = new HashMap<Integer, Integer>();
static {
sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select);
sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select);
sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select);
sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select);
sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select);
}
private static final Map<Integer, Integer> sFontSizeBtnsMap = new HashMap<Integer, Integer>();
static {
sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE);
sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL);
sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM);
sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER);
}
private static final Map<Integer, Integer> sFontSelectorSelectionMap = new HashMap<Integer, Integer>();
static {
sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select);
sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select);
sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select);
sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select);
}
private static final String TAG = "NoteEditActivity";
private HeadViewHolder mNoteHeaderHolder;
private View mHeadViewPanel;
private View mNoteBgColorSelector;
private View mFontSizeSelector;
private EditText mNoteEditor;
private View mNoteEditorPanel;
private WorkingNote mWorkingNote;
private SharedPreferences mSharedPrefs;
private int mFontSizeId;
private static final String PREFERENCE_FONT_SIZE = "pref_font_size";
private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10;
public static final String TAG_CHECKED = String.valueOf('\u221A');
public static final String TAG_UNCHECKED = String.valueOf('\u25A1');
private LinearLayout mEditTextList;
private String mUserQuery;
private Pattern mPattern;
/*gaoheng*/
private TextToSpeech mTts ;
;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
if (savedInstanceState == null && !initActivityState(getIntent())) {
finish();
return;
}
initResources();
}
/**
* 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) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID));
if (!initActivityState(intent)) {
finish();
return;
}
Log.d(TAG, "Restoring from killed activity");
}
}
private boolean initActivityState(Intent intent) {
/**
* 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())) {
long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0);
mUserQuery = "";
/**
* Starting from the searched result
*/
if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) {
noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY));
mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY);
}
if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) {
Intent jump = new Intent(this, NotesListActivity.class);
startActivity(jump);
showToast(R.string.error_note_not_exist);
finish();
return false;
} else {
mWorkingNote = WorkingNote.load(this, noteId);
if (mWorkingNote == null) {
Log.e(TAG, "load note failed with note id" + noteId);
finish();
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);
int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE,
Notes.TYPE_WIDGET_INVALIDE);
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) {
if (TextUtils.isEmpty(phoneNumber)) {
Log.w(TAG, "The call record number is null");
}
long noteId = 0;
if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(),
phoneNumber, callDate)) > 0) {
mWorkingNote = WorkingNote.load(this, noteId);
if (mWorkingNote == null) {
Log.e(TAG, "load call note failed with note id" + noteId);
finish();
return false;
}
} else {
mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId,
widgetType, bgResId);
mWorkingNote.convertToCallNote(phoneNumber, callDate);
}
} else {
mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType,
bgResId);
}
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
| WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
} else {
Log.e(TAG, "Intent not specified action, should not support");
finish();
return false;
}
mWorkingNote.setOnSettingStatusChangedListener(this);
return true;
}
@Override
protected void onResume() {
super.onResume();
initNoteScreen();
}
private void initNoteScreen() {
mNoteEditor.setTextAppearance(this, TextAppearanceResources
.getTexAppearanceResource(mFontSizeId));
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
switchToListMode(mWorkingNote.getContent());
} else {
mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery));
mNoteEditor.setSelection(mNoteEditor.getText().length());
}
for (Integer id : sBgSelectorSelectionMap.keySet()) {
findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE);
}
mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId());
mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId());
mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this,
mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME
| DateUtils.FORMAT_SHOW_YEAR));
/**
* 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();
if (time > mWorkingNote.getAlertDate()) {
mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired);
} else {
mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString(
mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS));
}
mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE);
} else {
mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE);
};
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
initActivityState(intent);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
/**
* 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();
}
outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId());
Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState");
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (mNoteBgColorSelector.getVisibility() == View.VISIBLE
&& !inRangeOfView(mNoteBgColorSelector, ev)) {
mNoteBgColorSelector.setVisibility(View.GONE);
return true;
}
if (mFontSizeSelector.getVisibility() == View.VISIBLE
&& !inRangeOfView(mFontSizeSelector, ev)) {
mFontSizeSelector.setVisibility(View.GONE);
return true;
}
return super.dispatchTouchEvent(ev);
}
private boolean inRangeOfView(View view, MotionEvent ev) {
int []location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
if (ev.getX() < x
|| ev.getX() > (x + view.getWidth())
|| ev.getY() < y
|| ev.getY() > (y + view.getHeight())) {
return false;
}
return true;
}
private void initResources() {
mTts = new TextToSpeech(this, new OnInitListener() {
@Override
/*gaoheng*/
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
//设置首选语言为中文,注意,语言可能是不可用的,结果将指示此
int result = mTts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA ||
result == TextToSpeech.LANG_NOT_SUPPORTED) {
//语言数据丢失或不支持该语言。
Log.e(TAG, "语言数据丢失或不支持该语言");
}
} else {
// 初始化失败
Log.e(TAG, "初始化失败");
}
}
});
mHeadViewPanel = findViewById(R.id.note_title);
mNoteHeaderHolder = new HeadViewHolder();
mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date);
mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon);
mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date);
mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color);
mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this);
mNoteEditor = (EditText) findViewById(R.id.note_edit_view);
mNoteEditorPanel = findViewById(R.id.sv_note_edit);
mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector);
for (int id : sBgSelectorBtnsMap.keySet()) {
ImageView iv = (ImageView) findViewById(id);
iv.setOnClickListener(this);
}
mFontSizeSelector = findViewById(R.id.font_size_selector);
for (int id : sFontSizeBtnsMap.keySet()) {
View view = findViewById(id);
view.setOnClickListener(this);
};
mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, 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;
}
mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list);
}
@Override
protected void 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);
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;
}
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
mWorkingNote.getWidgetId()
});
sendBroadcast(intent);
setResult(RESULT_OK, intent);
}
public void onClick(View v) {
int id = v.getId();
if (id == R.id.btn_set_bg_color) {
mNoteBgColorSelector.setVisibility(View.VISIBLE);
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
View.VISIBLE);
} else if (sBgSelectorBtnsMap.containsKey(id)) {
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
View.GONE);
mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id));
mNoteBgColorSelector.setVisibility(View.GONE);
} else if (sFontSizeBtnsMap.containsKey(id)) {
findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE);
mFontSizeId = sFontSizeBtnsMap.get(id);
mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit();
findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
getWorkingText();
switchToListMode(mWorkingNote.getContent());
} else {
mNoteEditor.setTextAppearance(this,
TextAppearanceResources.getTexAppearanceResource(mFontSizeId));
}
mFontSizeSelector.setVisibility(View.GONE);
}
}
@Override
public void onBackPressed() {
if(clearSettingState()) {
return;
}
saveNote();
super.onBackPressed();
}
private boolean clearSettingState() {
if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) {
mNoteBgColorSelector.setVisibility(View.GONE);
return true;
} else if (mFontSizeSelector.getVisibility() == View.VISIBLE) {
mFontSizeSelector.setVisibility(View.GONE);
return true;
}
return false;
}
public void onBackgroundColorChanged() {
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
View.VISIBLE);
mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId());
mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId());
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (isFinishing()) {
return true;
}
clearSettingState();
menu.clear();
if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) {
getMenuInflater().inflate(R.menu.call_note_edit, menu);
} else {
getMenuInflater().inflate(R.menu.note_edit, menu);
}
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode);
} else {
menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode);
}
if (mWorkingNote.hasClockAlert()) {
menu.findItem(R.id.menu_alert).setVisible(false);
} else {
menu.findItem(R.id.menu_delete_remind).setVisible(false);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_new_note) {
createNewNote();
} else if (itemId == R.id.menu_delete) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_note));
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
deleteCurrentNote();
finish();
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
} else if (itemId == R.id.menu_font_size) {
mFontSizeSelector.setVisibility(View.VISIBLE);
findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
} else if (itemId == R.id.menu_list_mode) {
mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ?
TextNote.MODE_CHECK_LIST : 0);
} else if (itemId == R.id.menu_share) {
getWorkingText();
sendTo(this, mWorkingNote.getContent());
} else if (itemId == R.id.menu_send_to_desktop) {
sendToDesktop();
} else if (itemId == R.id.menu_alert) {
setReminder();
} else if (itemId == R.id.menu_delete_remind) {
mWorkingNote.setAlertDate(0, false);
}
/*gaoheng*/
else if (itemId == R.id.menu_read_contain) {
testToSpeech();
} else if (itemId == R.id.menu_change_font) {
changeFont();
}
return true;
}
/*gaoheng*/
private void testToSpeech(){
mTts.speak(mNoteEditor.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
}
/*gaoheng*/
//弹出单选对话框选择不同字体
public void changeFont() {
final String[] items = {"普通", "非衬线", "衬线", "等宽", "简体"};
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
alertBuilder.setTitle("更换字体");
alertBuilder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
switch (i) {
case 0:
mNoteEditor.setTypeface(Typeface.DEFAULT);
break;
case 1:
mNoteEditor.setTypeface(Typeface.SANS_SERIF);
break;
case 2:
mNoteEditor.setTypeface(Typeface.SERIF);
break;
case 3:
mNoteEditor.setTypeface(Typeface.MONOSPACE);
break;
case 4:
Typeface typeface0 = Typeface.createFromAsset(getAssets(), "main/assets/font/simsunb.ttf");
mNoteEditor.setTypeface(typeface0);
break;
}
Toast.makeText(NoteEditActivity.this, items[i],
Toast.LENGTH_SHORT).show();
}
});
alertBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
alertBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
AlertDialog alertDialog = alertBuilder.create();
alertDialog.show();
}
private void setReminder() {
DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
d.setOnDateTimeSetListener(new OnDateTimeSetListener() {
public void OnDateTimeSet(AlertDialog dialog, long date) {
mWorkingNote.setAlertDate(date , true);
}
});
d.show();
}
/**
* Share note to apps that support {@link Intent#ACTION_SEND} action
* and {@text/plain} type
*/
private void sendTo(Context context, String info) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, info);
intent.setType("text/plain");
context.startActivity(intent);
}
private void createNewNote() {
// Firstly, save current editing notes
saveNote();
// For safety, start a new NoteEditActivity
finish();
Intent intent = new Intent(this, NoteEditActivity.class);
intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId());
startActivity(intent);
}
private void deleteCurrentNote() {
if (mWorkingNote.existInDatabase()) {
HashSet<Long> ids = new HashSet<Long>();
long id = mWorkingNote.getNoteId();
if (id != Notes.ID_ROOT_FOLDER) {
ids.add(id);
} else {
Log.d(TAG, "Wrong note id, should not happen");
}
if (!isSyncMode()) {
if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) {
Log.e(TAG, "Delete Note error");
}
} else {
if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) {
Log.e(TAG, "Move notes to trash folder error, should not happens");
}
}
}
mWorkingNote.markDeleted(true);
}
private boolean isSyncMode() {
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
}
public void onClockAlertChanged(long date, boolean set) {
/**
* User could set clock to an unsaved note, so before setting the
* alert clock, we should save the note first
*/
if (!mWorkingNote.existInDatabase()) {
saveNote();
}
if (mWorkingNote.getNoteId() > 0) {
Intent intent = new Intent(this, AlarmReceiver.class);
intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId()));
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE));
showAlertHeader();
if(!set) {
alarmManager.cancel(pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
}
} else {
/**
* There is the condition that user has input nothing (the note is
* not worthy saving), we have no note id, remind the user that he
* should input something
*/
Log.e(TAG, "Clock alert setting error");
showToast(R.string.error_note_empty_for_clock);
}
}
public void onWidgetChanged() {
updateWidget();
}
public void onEditTextDelete(int index, String text) {
int childCount = mEditTextList.getChildCount();
if (childCount == 1) {
return;
}
for (int i = index + 1; i < childCount; i++) {
((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text))
.setIndex(i - 1);
}
mEditTextList.removeViewAt(index);
NoteEditText edit = null;
if(index == 0) {
edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById(
R.id.et_edit_text);
} else {
edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById(
R.id.et_edit_text);
}
int length = edit.length();
edit.append(text);
edit.requestFocus();
edit.setSelection(length);
}
public void onEditTextEnter(int index, String text) {
/**
* Should not happen, check for debug
*/
if(index > mEditTextList.getChildCount()) {
Log.e(TAG, "Index out of mEditTextList boundrary, should not happen");
}
View view = getListItem(text, index);
mEditTextList.addView(view, index);
NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
edit.requestFocus();
edit.setSelection(0);
for (int i = index + 1; i < mEditTextList.getChildCount(); i++) {
((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text))
.setIndex(i);
}
}
private void switchToListMode(String text) {
mEditTextList.removeAllViews();
String[] items = text.split("\n");
int index = 0;
for (String item : items) {
if(!TextUtils.isEmpty(item)) {
mEditTextList.addView(getListItem(item, index));
index++;
}
}
mEditTextList.addView(getListItem("", index));
mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus();
mNoteEditor.setVisibility(View.GONE);
mEditTextList.setVisibility(View.VISIBLE);
}
private Spannable getHighlightQueryResult(String fullText, String userQuery) {
SpannableString spannable = new SpannableString(fullText == null ? "" : fullText);
if (!TextUtils.isEmpty(userQuery)) {
mPattern = Pattern.compile(userQuery);
Matcher m = mPattern.matcher(fullText);
int start = 0;
while (m.find(start)) {
spannable.setSpan(
new BackgroundColorSpan(this.getResources().getColor(
R.color.user_query_highlight)), m.start(), m.end(),
Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
start = m.end();
}
}
return spannable;
}
private View getListItem(String item, int index) {
View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null);
final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId));
CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item));
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
} else {
edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
}
}
});
if (item.startsWith(TAG_CHECKED)) {
cb.setChecked(true);
edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
item = item.substring(TAG_CHECKED.length(), item.length()).trim();
} else if (item.startsWith(TAG_UNCHECKED)) {
cb.setChecked(false);
edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
item = item.substring(TAG_UNCHECKED.length(), item.length()).trim();
}
edit.setOnTextViewChangeListener(this);
edit.setIndex(index);
edit.setText(getHighlightQueryResult(item, mUserQuery));
return view;
}
public void onTextChange(int index, boolean hasText) {
if (index >= mEditTextList.getChildCount()) {
Log.e(TAG, "Wrong index, should not happen");
return;
}
if(hasText) {
mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE);
} else {
mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE);
}
}
public void onCheckListModeChanged(int oldMode, int newMode) {
if (newMode == TextNote.MODE_CHECK_LIST) {
switchToListMode(mNoteEditor.getText().toString());
} else {
if (!getWorkingText()) {
mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ",
""));
}
mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery));
mEditTextList.setVisibility(View.GONE);
mNoteEditor.setVisibility(View.VISIBLE);
}
}
private boolean getWorkingText() {
boolean hasChecked = false;
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mEditTextList.getChildCount(); i++) {
View view = mEditTextList.getChildAt(i);
NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
if (!TextUtils.isEmpty(edit.getText())) {
if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) {
sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n");
hasChecked = true;
} else {
sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n");
}
}
}
mWorkingNote.setWorkingText(sb.toString());
} else {
mWorkingNote.setWorkingText(mNoteEditor.getText().toString());
}
return hasChecked;
}
private boolean saveNote() {
getWorkingText();
boolean saved = mWorkingNote.saveNote();
if (saved) {
/**
* There are two modes from List view to edit view, open one note,
* create/edit a node. Opening node requires to the original
* position in the list when back from edit view, while creating a
* new node requires to the top of the list. This code
* {@link #RESULT_OK} is used to identify the create/edit state
*/
setResult(RESULT_OK);
}
return saved;
}
private void sendToDesktop() {
/**
* Before send message to home, we should make sure that current
* editing note is exists in databases. So, for new note, firstly
* save it
*/
if (!mWorkingNote.existInDatabase()) {
saveNote();
}
if (mWorkingNote.getNoteId() > 0) {
Intent sender = new Intent();
Intent shortcutIntent = new Intent(this, NoteEditActivity.class);
shortcutIntent.setAction(Intent.ACTION_VIEW);
shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId());
sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
sender.putExtra(Intent.EXTRA_SHORTCUT_NAME,
makeShortcutIconTitle(mWorkingNote.getContent()));
sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app));
sender.putExtra("duplicate", true);
sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
showToast(R.string.info_note_enter_desktop);
sendBroadcast(sender);
} else {
/**
* There is the condition that user has input nothing (the note is
* not worthy saving), we have no note id, remind the user that he
* should input something
*/
Log.e(TAG, "Send to desktop error");
showToast(R.string.error_note_empty_for_send_to_desktop);
}
}
private String makeShortcutIconTitle(String content) {
content = content.replace(TAG_CHECKED, "");
content = content.replace(TAG_UNCHECKED, "");
return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0,
SHORTCUT_ICON_TITLE_MAX_LEN) : content;
}
private void showToast(int resId) {
showToast(resId, Toast.LENGTH_SHORT);
}
private void showToast(int resId, int duration) {
Toast.makeText(this, resId, duration).show();
}
}

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

9
src/.gitignore vendored

@ -0,0 +1,9 @@
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
project.properties
.settings/
.classpath
.project

@ -0,0 +1,2 @@
#Fri Sep 01 23:43:13 CST 2023
gradle.version=8.0

Binary file not shown.

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\huigenb\.android\avd\Pixel_3a_API_34.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-01-18T17:22:48.685340200Z" />
</component>
</project>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="jbr-17" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://maven.aliyun.com/repository/google" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://maven.aliyun.com/repository/jcenter" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://maven.aliyun.com/nexus/content/repositories/jcenter" />
</remote-repository>
</component>
</project>

@ -0,0 +1,3 @@
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK" />
</project>

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/src.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/src.app.iml" />
</modules>
</component>
</project>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="TestModuleProperties" production-module="Code.app.main" />
</module>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="TestModuleProperties" production-module="Code.app.main" />
</module>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="TestModuleProperties" production-module="src.app.main" />
</module>

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$/../../../app">
<sourceFolder url="file://$MODULE_DIR$/../../../app" isTestSource="false" />
</content>
</component>
</module>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="TestModuleProperties" production-module="src.app.main" />
</module>

@ -16,7 +16,7 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.micode.notes"
android:versionCode="1"
android:versionName="0.1">
@ -35,26 +35,29 @@
<application
android:icon="@drawable/icon_app"
android:label="@string/app_name">
<activity
android:name=".ui.SplashActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/title_activity_splash"
android:theme="@style/Theme.Code.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.NotesListActivity"
android:exported="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/NoteTheme"
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="adjustPan">
<!--android:uiOptions="splitActionBarWhenNarrow"-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.NoteEditActivity"
android:exported="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTop"
android:theme="@style/NoteTheme">
@ -62,6 +65,7 @@
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/text_note" />
<data android:mimeType="vnd.android.cursor.item/call_note" />
</intent-filter>
@ -69,6 +73,7 @@
<intent-filter>
<action android:name="android.intent.action.INSERT_OR_EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/text_note" />
<data android:mimeType="vnd.android.cursor.item/call_note" />
</intent-filter>
@ -90,7 +95,6 @@
<receiver
android:name=".widget.NoteWidgetProvider_2x"
android:exported="true"
android:label="@string/app_widget2x2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
@ -100,12 +104,10 @@
<meta-data
android:name="android.appwidget.provider"
android:exported="true"
android:resource="@xml/widget_2x_info" />
</receiver>
<receiver
android:name=".widget.NoteWidgetProvider_4x"
android:exported="true"
android:label="@string/app_widget4x4">
<intent-filter>
@ -116,13 +118,10 @@
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_4x_info" />
</receiver>
<receiver android:name=".ui.AlarmInitReceiver"
android:exported="true">
<receiver android:name=".ui.AlarmInitReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
@ -130,29 +129,23 @@
<receiver
android:name="net.micode.notes.ui.AlarmReceiver"
android:process=":remote" >
</receiver>
android:process=":remote"></receiver>
<activity
android:name=".ui.AlarmAlertActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
</activity>
android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar"></activity>
<activity
android:name="net.micode.notes.ui.NotesPreferenceActivity"
android:exported="true"
android:label="@string/preferences_title"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Holo.Light" >
</activity>
android:theme="@android:style/Theme.Holo.Light"></activity>
<service
android:name="net.micode.notes.gtask.remote.GTaskSyncService"
android:exported="true" >
</service>
android:exported="false"></service>
<meta-data
android:name="android.app.default_searchable"

@ -0,0 +1,190 @@
Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

@ -0,0 +1,23 @@
[中文]
1. MiCode便签是小米便签的社区开源版由MIUI团队(www.miui.com) 发起并贡献第一批代码遵循NOTICE文件所描述的开源协议
今后为MiCode社区(www.micode.net) 拥有,并由社区发布和维护。
2. Bug反馈和跟踪请访问Github,
https://github.com/MiCode/Notes/issues?sort=created&direction=desc&state=open
3. 功能建议和综合讨论请访问MiCode,
http://micode.net/forum.php?mod=forumdisplay&fid=38
[English]
1. MiCode Notes is open source edition of XM notepad, it's first initiated and sponsored by MIUI team (www.miui.com).
It's opened under license described by NOTICE file. It's owned by the MiCode community (www.micode.net). In future,
the MiCode community will release and maintain this project.
2. Regarding issue tracking, please visit Github,
https://github.com/MiCode/Notes/issues?sort=created&direction=desc&state=open
3. Regarding feature request and general discussion, please visit Micode forum,
http://micode.net/forum.php?mod=forumdisplay&fid=38

@ -0,0 +1,31 @@
apply plugin: 'com.android.application'
android {
namespace "net.micode.notes"
compileSdk 22
buildToolsVersion "34.0.0"
useLibrary'org.apache.http.legacy'
defaultConfig {
applicationId "net.micode.notes"
minSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:22.+'
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}

@ -0,0 +1,80 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class AccountDialogTitleBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final TextView accountDialogSubtitle;
@NonNull
public final TextView accountDialogTitle;
private AccountDialogTitleBinding(@NonNull LinearLayout rootView,
@NonNull TextView accountDialogSubtitle, @NonNull TextView accountDialogTitle) {
this.rootView = rootView;
this.accountDialogSubtitle = accountDialogSubtitle;
this.accountDialogTitle = accountDialogTitle;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static AccountDialogTitleBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static AccountDialogTitleBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.account_dialog_title, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static AccountDialogTitleBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.account_dialog_subtitle;
TextView accountDialogSubtitle = ViewBindings.findChildViewById(rootView, id);
if (accountDialogSubtitle == null) {
break missingId;
}
id = R.id.account_dialog_title;
TextView accountDialogTitle = ViewBindings.findChildViewById(rootView, id);
if (accountDialogTitle == null) {
break missingId;
}
return new AccountDialogTitleBinding((LinearLayout) rootView, accountDialogSubtitle,
accountDialogTitle);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,102 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class ActivityChangePasswordBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final Button Acknowledged;
@NonNull
public final EditText ackPassword;
@NonNull
public final EditText newPassword;
@NonNull
public final EditText oldPassword;
private ActivityChangePasswordBinding(@NonNull LinearLayout rootView,
@NonNull Button Acknowledged, @NonNull EditText ackPassword, @NonNull EditText newPassword,
@NonNull EditText oldPassword) {
this.rootView = rootView;
this.Acknowledged = Acknowledged;
this.ackPassword = ackPassword;
this.newPassword = newPassword;
this.oldPassword = oldPassword;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityChangePasswordBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityChangePasswordBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_change_password, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityChangePasswordBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.Acknowledged;
Button Acknowledged = ViewBindings.findChildViewById(rootView, id);
if (Acknowledged == null) {
break missingId;
}
id = R.id.ack_password;
EditText ackPassword = ViewBindings.findChildViewById(rootView, id);
if (ackPassword == null) {
break missingId;
}
id = R.id.new_password;
EditText newPassword = ViewBindings.findChildViewById(rootView, id);
if (newPassword == null) {
break missingId;
}
id = R.id.old_password;
EditText oldPassword = ViewBindings.findChildViewById(rootView, id);
if (oldPassword == null) {
break missingId;
}
return new ActivityChangePasswordBinding((LinearLayout) rootView, Acknowledged, ackPassword,
newPassword, oldPassword);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,81 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class ActivityDeletePasswordBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final Button DtAcknowledged;
@NonNull
public final EditText thepassword;
private ActivityDeletePasswordBinding(@NonNull LinearLayout rootView,
@NonNull Button DtAcknowledged, @NonNull EditText thepassword) {
this.rootView = rootView;
this.DtAcknowledged = DtAcknowledged;
this.thepassword = thepassword;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityDeletePasswordBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityDeletePasswordBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_delete_password, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityDeletePasswordBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.Dt_Acknowledged;
Button DtAcknowledged = ViewBindings.findChildViewById(rootView, id);
if (DtAcknowledged == null) {
break missingId;
}
id = R.id.thepassword;
EditText thepassword = ViewBindings.findChildViewById(rootView, id);
if (thepassword == null) {
break missingId;
}
return new ActivityDeletePasswordBinding((LinearLayout) rootView, DtAcknowledged,
thepassword);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,80 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class ActivityLoginBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final EditText lgPassword;
@NonNull
public final Button login;
private ActivityLoginBinding(@NonNull LinearLayout rootView, @NonNull EditText lgPassword,
@NonNull Button login) {
this.rootView = rootView;
this.lgPassword = lgPassword;
this.login = login;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivityLoginBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivityLoginBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_login, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivityLoginBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.lg_password;
EditText lgPassword = ViewBindings.findChildViewById(rootView, id);
if (lgPassword == null) {
break missingId;
}
id = R.id.login;
Button login = ViewBindings.findChildViewById(rootView, id);
if (login == null) {
break missingId;
}
return new ActivityLoginBinding((LinearLayout) rootView, lgPassword, login);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,91 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class ActivitySetLoginpasswordBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final Button acknowledge;
@NonNull
public final EditText password;
@NonNull
public final EditText passwordAck;
private ActivitySetLoginpasswordBinding(@NonNull LinearLayout rootView,
@NonNull Button acknowledge, @NonNull EditText password, @NonNull EditText passwordAck) {
this.rootView = rootView;
this.acknowledge = acknowledge;
this.password = password;
this.passwordAck = passwordAck;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static ActivitySetLoginpasswordBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivitySetLoginpasswordBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_set_loginpassword, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivitySetLoginpasswordBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.acknowledge;
Button acknowledge = ViewBindings.findChildViewById(rootView, id);
if (acknowledge == null) {
break missingId;
}
id = R.id.password;
EditText password = ViewBindings.findChildViewById(rootView, id);
if (password == null) {
break missingId;
}
id = R.id.password_ack;
EditText passwordAck = ViewBindings.findChildViewById(rootView, id);
if (passwordAck == null) {
break missingId;
}
return new ActivitySetLoginpasswordBinding((LinearLayout) rootView, acknowledge, password,
passwordAck);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,92 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class ActivitySplashBinding implements ViewBinding {
@NonNull
private final FrameLayout rootView;
@NonNull
public final Button dummyButton;
@NonNull
public final TextView fullscreenContent;
@NonNull
public final LinearLayout fullscreenContentControls;
private ActivitySplashBinding(@NonNull FrameLayout rootView, @NonNull Button dummyButton,
@NonNull TextView fullscreenContent, @NonNull LinearLayout fullscreenContentControls) {
this.rootView = rootView;
this.dummyButton = dummyButton;
this.fullscreenContent = fullscreenContent;
this.fullscreenContentControls = fullscreenContentControls;
}
@Override
@NonNull
public FrameLayout getRoot() {
return rootView;
}
@NonNull
public static ActivitySplashBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ActivitySplashBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.activity_splash, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ActivitySplashBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.dummy_button;
Button dummyButton = ViewBindings.findChildViewById(rootView, id);
if (dummyButton == null) {
break missingId;
}
id = R.id.fullscreen_content;
TextView fullscreenContent = ViewBindings.findChildViewById(rootView, id);
if (fullscreenContent == null) {
break missingId;
}
id = R.id.fullscreen_content_controls;
LinearLayout fullscreenContentControls = ViewBindings.findChildViewById(rootView, id);
if (fullscreenContentControls == null) {
break missingId;
}
return new ActivitySplashBinding((FrameLayout) rootView, dummyButton, fullscreenContent,
fullscreenContentControls);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,52 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class AddAccountTextBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
private AddAccountTextBinding(@NonNull LinearLayout rootView) {
this.rootView = rootView;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static AddAccountTextBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static AddAccountTextBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.add_account_text, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static AddAccountTextBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
return new AddAccountTextBinding((LinearLayout) rootView);
}
}

@ -0,0 +1,99 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.LinearLayout;
import android.widget.NumberPicker;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class DatetimePickerBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final NumberPicker amPm;
@NonNull
public final NumberPicker date;
@NonNull
public final NumberPicker hour;
@NonNull
public final NumberPicker minute;
private DatetimePickerBinding(@NonNull LinearLayout rootView, @NonNull NumberPicker amPm,
@NonNull NumberPicker date, @NonNull NumberPicker hour, @NonNull NumberPicker minute) {
this.rootView = rootView;
this.amPm = amPm;
this.date = date;
this.hour = hour;
this.minute = minute;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static DatetimePickerBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DatetimePickerBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.datetime_picker, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DatetimePickerBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.amPm;
NumberPicker amPm = ViewBindings.findChildViewById(rootView, id);
if (amPm == null) {
break missingId;
}
id = R.id.date;
NumberPicker date = ViewBindings.findChildViewById(rootView, id);
if (date == null) {
break missingId;
}
id = R.id.hour;
NumberPicker hour = ViewBindings.findChildViewById(rootView, id);
if (hour == null) {
break missingId;
}
id = R.id.minute;
NumberPicker minute = ViewBindings.findChildViewById(rootView, id);
if (minute == null) {
break missingId;
}
return new DatetimePickerBinding((LinearLayout) rootView, amPm, date, hour, minute);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,58 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.widget.EditText;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class DialogEditTextBinding implements ViewBinding {
@NonNull
private final EditText rootView;
@NonNull
public final EditText etFolerName;
private DialogEditTextBinding(@NonNull EditText rootView, @NonNull EditText etFolerName) {
this.rootView = rootView;
this.etFolerName = etFolerName;
}
@Override
@NonNull
public EditText getRoot() {
return rootView;
}
@NonNull
public static DialogEditTextBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static DialogEditTextBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.dialog_edit_text, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static DialogEditTextBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
EditText etFolerName = (EditText) rootView;
return new DialogEditTextBinding((EditText) rootView, etFolerName);
}
}

@ -0,0 +1,68 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class FolderListItemBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final TextView tvFolderName;
private FolderListItemBinding(@NonNull LinearLayout rootView, @NonNull TextView tvFolderName) {
this.rootView = rootView;
this.tvFolderName = tvFolderName;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static FolderListItemBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static FolderListItemBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.folder_list_item, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static FolderListItemBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.tv_folder_name;
TextView tvFolderName = ViewBindings.findChildViewById(rootView, id);
if (tvFolderName == null) {
break missingId;
}
return new FolderListItemBinding((LinearLayout) rootView, tvFolderName);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,381 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
import net.micode.notes.ui.NoteEditText;
public final class NoteEditBinding implements ViewBinding {
@NonNull
private final FrameLayout rootView;
@NonNull
public final ImageView btnSetBgColor;
@NonNull
public final Button btnSetType;
@NonNull
public final LinearLayout fontSizeSelector;
@NonNull
public final ImageView ivAlertIcon;
@NonNull
public final ImageView ivBgBlue;
@NonNull
public final ImageView ivBgBlueSelect;
@NonNull
public final ImageView ivBgGreen;
@NonNull
public final ImageView ivBgGreenSelect;
@NonNull
public final ImageView ivBgRed;
@NonNull
public final ImageView ivBgRedSelect;
@NonNull
public final ImageView ivBgWhite;
@NonNull
public final ImageView ivBgWhiteSelect;
@NonNull
public final ImageView ivBgYellow;
@NonNull
public final ImageView ivBgYellowSelect;
@NonNull
public final ImageView ivLargeSelect;
@NonNull
public final ImageView ivMediumSelect;
@NonNull
public final ImageView ivSmallSelect;
@NonNull
public final ImageView ivSuperSelect;
@NonNull
public final FrameLayout llFontLarge;
@NonNull
public final FrameLayout llFontNormal;
@NonNull
public final FrameLayout llFontSmall;
@NonNull
public final FrameLayout llFontSuper;
@NonNull
public final LinearLayout noteBgColorSelector;
@NonNull
public final LinearLayout noteEditList;
@NonNull
public final NoteEditText noteEditView;
@NonNull
public final LinearLayout noteTitle;
@NonNull
public final LinearLayout svNoteEdit;
@NonNull
public final TextView textNum;
@NonNull
public final TextView tvAlertDate;
@NonNull
public final TextView tvModifiedDate;
private NoteEditBinding(@NonNull FrameLayout rootView, @NonNull ImageView btnSetBgColor,
@NonNull Button btnSetType, @NonNull LinearLayout fontSizeSelector,
@NonNull ImageView ivAlertIcon, @NonNull ImageView ivBgBlue,
@NonNull ImageView ivBgBlueSelect, @NonNull ImageView ivBgGreen,
@NonNull ImageView ivBgGreenSelect, @NonNull ImageView ivBgRed,
@NonNull ImageView ivBgRedSelect, @NonNull ImageView ivBgWhite,
@NonNull ImageView ivBgWhiteSelect, @NonNull ImageView ivBgYellow,
@NonNull ImageView ivBgYellowSelect, @NonNull ImageView ivLargeSelect,
@NonNull ImageView ivMediumSelect, @NonNull ImageView ivSmallSelect,
@NonNull ImageView ivSuperSelect, @NonNull FrameLayout llFontLarge,
@NonNull FrameLayout llFontNormal, @NonNull FrameLayout llFontSmall,
@NonNull FrameLayout llFontSuper, @NonNull LinearLayout noteBgColorSelector,
@NonNull LinearLayout noteEditList, @NonNull NoteEditText noteEditView,
@NonNull LinearLayout noteTitle, @NonNull LinearLayout svNoteEdit, @NonNull TextView textNum,
@NonNull TextView tvAlertDate, @NonNull TextView tvModifiedDate) {
this.rootView = rootView;
this.btnSetBgColor = btnSetBgColor;
this.btnSetType = btnSetType;
this.fontSizeSelector = fontSizeSelector;
this.ivAlertIcon = ivAlertIcon;
this.ivBgBlue = ivBgBlue;
this.ivBgBlueSelect = ivBgBlueSelect;
this.ivBgGreen = ivBgGreen;
this.ivBgGreenSelect = ivBgGreenSelect;
this.ivBgRed = ivBgRed;
this.ivBgRedSelect = ivBgRedSelect;
this.ivBgWhite = ivBgWhite;
this.ivBgWhiteSelect = ivBgWhiteSelect;
this.ivBgYellow = ivBgYellow;
this.ivBgYellowSelect = ivBgYellowSelect;
this.ivLargeSelect = ivLargeSelect;
this.ivMediumSelect = ivMediumSelect;
this.ivSmallSelect = ivSmallSelect;
this.ivSuperSelect = ivSuperSelect;
this.llFontLarge = llFontLarge;
this.llFontNormal = llFontNormal;
this.llFontSmall = llFontSmall;
this.llFontSuper = llFontSuper;
this.noteBgColorSelector = noteBgColorSelector;
this.noteEditList = noteEditList;
this.noteEditView = noteEditView;
this.noteTitle = noteTitle;
this.svNoteEdit = svNoteEdit;
this.textNum = textNum;
this.tvAlertDate = tvAlertDate;
this.tvModifiedDate = tvModifiedDate;
}
@Override
@NonNull
public FrameLayout getRoot() {
return rootView;
}
@NonNull
public static NoteEditBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static NoteEditBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.note_edit, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static NoteEditBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.btn_set_bg_color;
ImageView btnSetBgColor = ViewBindings.findChildViewById(rootView, id);
if (btnSetBgColor == null) {
break missingId;
}
id = R.id.btn_SetType;
Button btnSetType = ViewBindings.findChildViewById(rootView, id);
if (btnSetType == null) {
break missingId;
}
id = R.id.font_size_selector;
LinearLayout fontSizeSelector = ViewBindings.findChildViewById(rootView, id);
if (fontSizeSelector == null) {
break missingId;
}
id = R.id.iv_alert_icon;
ImageView ivAlertIcon = ViewBindings.findChildViewById(rootView, id);
if (ivAlertIcon == null) {
break missingId;
}
id = R.id.iv_bg_blue;
ImageView ivBgBlue = ViewBindings.findChildViewById(rootView, id);
if (ivBgBlue == null) {
break missingId;
}
id = R.id.iv_bg_blue_select;
ImageView ivBgBlueSelect = ViewBindings.findChildViewById(rootView, id);
if (ivBgBlueSelect == null) {
break missingId;
}
id = R.id.iv_bg_green;
ImageView ivBgGreen = ViewBindings.findChildViewById(rootView, id);
if (ivBgGreen == null) {
break missingId;
}
id = R.id.iv_bg_green_select;
ImageView ivBgGreenSelect = ViewBindings.findChildViewById(rootView, id);
if (ivBgGreenSelect == null) {
break missingId;
}
id = R.id.iv_bg_red;
ImageView ivBgRed = ViewBindings.findChildViewById(rootView, id);
if (ivBgRed == null) {
break missingId;
}
id = R.id.iv_bg_red_select;
ImageView ivBgRedSelect = ViewBindings.findChildViewById(rootView, id);
if (ivBgRedSelect == null) {
break missingId;
}
id = R.id.iv_bg_white;
ImageView ivBgWhite = ViewBindings.findChildViewById(rootView, id);
if (ivBgWhite == null) {
break missingId;
}
id = R.id.iv_bg_white_select;
ImageView ivBgWhiteSelect = ViewBindings.findChildViewById(rootView, id);
if (ivBgWhiteSelect == null) {
break missingId;
}
id = R.id.iv_bg_yellow;
ImageView ivBgYellow = ViewBindings.findChildViewById(rootView, id);
if (ivBgYellow == null) {
break missingId;
}
id = R.id.iv_bg_yellow_select;
ImageView ivBgYellowSelect = ViewBindings.findChildViewById(rootView, id);
if (ivBgYellowSelect == null) {
break missingId;
}
id = R.id.iv_large_select;
ImageView ivLargeSelect = ViewBindings.findChildViewById(rootView, id);
if (ivLargeSelect == null) {
break missingId;
}
id = R.id.iv_medium_select;
ImageView ivMediumSelect = ViewBindings.findChildViewById(rootView, id);
if (ivMediumSelect == null) {
break missingId;
}
id = R.id.iv_small_select;
ImageView ivSmallSelect = ViewBindings.findChildViewById(rootView, id);
if (ivSmallSelect == null) {
break missingId;
}
id = R.id.iv_super_select;
ImageView ivSuperSelect = ViewBindings.findChildViewById(rootView, id);
if (ivSuperSelect == null) {
break missingId;
}
id = R.id.ll_font_large;
FrameLayout llFontLarge = ViewBindings.findChildViewById(rootView, id);
if (llFontLarge == null) {
break missingId;
}
id = R.id.ll_font_normal;
FrameLayout llFontNormal = ViewBindings.findChildViewById(rootView, id);
if (llFontNormal == null) {
break missingId;
}
id = R.id.ll_font_small;
FrameLayout llFontSmall = ViewBindings.findChildViewById(rootView, id);
if (llFontSmall == null) {
break missingId;
}
id = R.id.ll_font_super;
FrameLayout llFontSuper = ViewBindings.findChildViewById(rootView, id);
if (llFontSuper == null) {
break missingId;
}
id = R.id.note_bg_color_selector;
LinearLayout noteBgColorSelector = ViewBindings.findChildViewById(rootView, id);
if (noteBgColorSelector == null) {
break missingId;
}
id = R.id.note_edit_list;
LinearLayout noteEditList = ViewBindings.findChildViewById(rootView, id);
if (noteEditList == null) {
break missingId;
}
id = R.id.note_edit_view;
NoteEditText noteEditView = ViewBindings.findChildViewById(rootView, id);
if (noteEditView == null) {
break missingId;
}
id = R.id.note_title;
LinearLayout noteTitle = ViewBindings.findChildViewById(rootView, id);
if (noteTitle == null) {
break missingId;
}
id = R.id.sv_note_edit;
LinearLayout svNoteEdit = ViewBindings.findChildViewById(rootView, id);
if (svNoteEdit == null) {
break missingId;
}
id = R.id.text_num;
TextView textNum = ViewBindings.findChildViewById(rootView, id);
if (textNum == null) {
break missingId;
}
id = R.id.tv_alert_date;
TextView tvAlertDate = ViewBindings.findChildViewById(rootView, id);
if (tvAlertDate == null) {
break missingId;
}
id = R.id.tv_modified_date;
TextView tvModifiedDate = ViewBindings.findChildViewById(rootView, id);
if (tvModifiedDate == null) {
break missingId;
}
return new NoteEditBinding((FrameLayout) rootView, btnSetBgColor, btnSetType,
fontSizeSelector, ivAlertIcon, ivBgBlue, ivBgBlueSelect, ivBgGreen, ivBgGreenSelect,
ivBgRed, ivBgRedSelect, ivBgWhite, ivBgWhiteSelect, ivBgYellow, ivBgYellowSelect,
ivLargeSelect, ivMediumSelect, ivSmallSelect, ivSuperSelect, llFontLarge, llFontNormal,
llFontSmall, llFontSuper, noteBgColorSelector, noteEditList, noteEditView, noteTitle,
svNoteEdit, textNum, tvAlertDate, tvModifiedDate);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,80 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
import net.micode.notes.ui.NoteEditText;
public final class NoteEditListItemBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final CheckBox cbEditItem;
@NonNull
public final NoteEditText etEditText;
private NoteEditListItemBinding(@NonNull LinearLayout rootView, @NonNull CheckBox cbEditItem,
@NonNull NoteEditText etEditText) {
this.rootView = rootView;
this.cbEditItem = cbEditItem;
this.etEditText = etEditText;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static NoteEditListItemBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static NoteEditListItemBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.note_edit_list_item, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static NoteEditListItemBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.cb_edit_item;
CheckBox cbEditItem = ViewBindings.findChildViewById(rootView, id);
if (cbEditItem == null) {
break missingId;
}
id = R.id.et_edit_text;
NoteEditText etEditText = ViewBindings.findChildViewById(rootView, id);
if (etEditText == null) {
break missingId;
}
return new NoteEditListItemBinding((LinearLayout) rootView, cbEditItem, etEditText);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,129 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class NoteItemBinding implements ViewBinding {
@NonNull
private final FrameLayout rootView;
@NonNull
public final CheckBox checkbox;
@NonNull
public final ImageView ivAlertIcon;
@NonNull
public final FrameLayout noteItem;
@NonNull
public final TextView tvName;
@NonNull
public final TextView tvTime;
@NonNull
public final TextView tvTitle;
@NonNull
public final TextView tvType;
private NoteItemBinding(@NonNull FrameLayout rootView, @NonNull CheckBox checkbox,
@NonNull ImageView ivAlertIcon, @NonNull FrameLayout noteItem, @NonNull TextView tvName,
@NonNull TextView tvTime, @NonNull TextView tvTitle, @NonNull TextView tvType) {
this.rootView = rootView;
this.checkbox = checkbox;
this.ivAlertIcon = ivAlertIcon;
this.noteItem = noteItem;
this.tvName = tvName;
this.tvTime = tvTime;
this.tvTitle = tvTitle;
this.tvType = tvType;
}
@Override
@NonNull
public FrameLayout getRoot() {
return rootView;
}
@NonNull
public static NoteItemBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static NoteItemBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.note_item, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static NoteItemBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = android.R.id.checkbox;
CheckBox checkbox = ViewBindings.findChildViewById(rootView, id);
if (checkbox == null) {
break missingId;
}
id = R.id.iv_alert_icon;
ImageView ivAlertIcon = ViewBindings.findChildViewById(rootView, id);
if (ivAlertIcon == null) {
break missingId;
}
FrameLayout noteItem = (FrameLayout) rootView;
id = R.id.tv_name;
TextView tvName = ViewBindings.findChildViewById(rootView, id);
if (tvName == null) {
break missingId;
}
id = R.id.tv_time;
TextView tvTime = ViewBindings.findChildViewById(rootView, id);
if (tvTime == null) {
break missingId;
}
id = R.id.tv_title;
TextView tvTitle = ViewBindings.findChildViewById(rootView, id);
if (tvTitle == null) {
break missingId;
}
id = R.id.tv_type;
TextView tvType = ViewBindings.findChildViewById(rootView, id);
if (tvType == null) {
break missingId;
}
return new NoteItemBinding((FrameLayout) rootView, checkbox, ivAlertIcon, noteItem, tvName,
tvTime, tvTitle, tvType);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,91 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class NoteListBinding implements ViewBinding {
@NonNull
private final FrameLayout rootView;
@NonNull
public final Button btnNewNote;
@NonNull
public final ListView notesList;
@NonNull
public final TextView tvTitleBar;
private NoteListBinding(@NonNull FrameLayout rootView, @NonNull Button btnNewNote,
@NonNull ListView notesList, @NonNull TextView tvTitleBar) {
this.rootView = rootView;
this.btnNewNote = btnNewNote;
this.notesList = notesList;
this.tvTitleBar = tvTitleBar;
}
@Override
@NonNull
public FrameLayout getRoot() {
return rootView;
}
@NonNull
public static NoteListBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static NoteListBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.note_list, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static NoteListBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.btn_new_note;
Button btnNewNote = ViewBindings.findChildViewById(rootView, id);
if (btnNewNote == null) {
break missingId;
}
id = R.id.notes_list;
ListView notesList = ViewBindings.findChildViewById(rootView, id);
if (notesList == null) {
break missingId;
}
id = R.id.tv_title_bar;
TextView tvTitleBar = ViewBindings.findChildViewById(rootView, id);
if (tvTitleBar == null) {
break missingId;
}
return new NoteListBinding((FrameLayout) rootView, btnNewNote, notesList, tvTitleBar);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,75 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.LinearLayout;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class NoteListDropdownMenuBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final LinearLayout navigationBar;
@NonNull
public final Button selectionMenu;
private NoteListDropdownMenuBinding(@NonNull LinearLayout rootView,
@NonNull LinearLayout navigationBar, @NonNull Button selectionMenu) {
this.rootView = rootView;
this.navigationBar = navigationBar;
this.selectionMenu = selectionMenu;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static NoteListDropdownMenuBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static NoteListDropdownMenuBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.note_list_dropdown_menu, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static NoteListDropdownMenuBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
LinearLayout navigationBar = (LinearLayout) rootView;
id = R.id.selection_menu;
Button selectionMenu = ViewBindings.findChildViewById(rootView, id);
if (selectionMenu == null) {
break missingId;
}
return new NoteListDropdownMenuBinding((LinearLayout) rootView, navigationBar, selectionMenu);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,51 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import java.lang.NullPointerException;
import java.lang.Override;
import net.micode.notes.R;
public final class NoteListFooterBinding implements ViewBinding {
@NonNull
private final View rootView;
private NoteListFooterBinding(@NonNull View rootView) {
this.rootView = rootView;
}
@Override
@NonNull
public View getRoot() {
return rootView;
}
@NonNull
public static NoteListFooterBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static NoteListFooterBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.note_list_footer, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static NoteListFooterBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
return new NoteListFooterBinding(rootView);
}
}

@ -0,0 +1,81 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class SettingsHeaderBinding implements ViewBinding {
@NonNull
private final LinearLayout rootView;
@NonNull
public final TextView prefenereceSyncStatusTextview;
@NonNull
public final Button preferenceSyncButton;
private SettingsHeaderBinding(@NonNull LinearLayout rootView,
@NonNull TextView prefenereceSyncStatusTextview, @NonNull Button preferenceSyncButton) {
this.rootView = rootView;
this.prefenereceSyncStatusTextview = prefenereceSyncStatusTextview;
this.preferenceSyncButton = preferenceSyncButton;
}
@Override
@NonNull
public LinearLayout getRoot() {
return rootView;
}
@NonNull
public static SettingsHeaderBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static SettingsHeaderBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.settings_header, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static SettingsHeaderBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.prefenerece_sync_status_textview;
TextView prefenereceSyncStatusTextview = ViewBindings.findChildViewById(rootView, id);
if (prefenereceSyncStatusTextview == null) {
break missingId;
}
id = R.id.preference_sync_button;
Button preferenceSyncButton = ViewBindings.findChildViewById(rootView, id);
if (preferenceSyncButton == null) {
break missingId;
}
return new SettingsHeaderBinding((LinearLayout) rootView, prefenereceSyncStatusTextview,
preferenceSyncButton);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,80 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class Widget2xBinding implements ViewBinding {
@NonNull
private final FrameLayout rootView;
@NonNull
public final ImageView widgetBgImage;
@NonNull
public final TextView widgetText;
private Widget2xBinding(@NonNull FrameLayout rootView, @NonNull ImageView widgetBgImage,
@NonNull TextView widgetText) {
this.rootView = rootView;
this.widgetBgImage = widgetBgImage;
this.widgetText = widgetText;
}
@Override
@NonNull
public FrameLayout getRoot() {
return rootView;
}
@NonNull
public static Widget2xBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static Widget2xBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.widget_2x, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static Widget2xBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.widget_bg_image;
ImageView widgetBgImage = ViewBindings.findChildViewById(rootView, id);
if (widgetBgImage == null) {
break missingId;
}
id = R.id.widget_text;
TextView widgetText = ViewBindings.findChildViewById(rootView, id);
if (widgetText == null) {
break missingId;
}
return new Widget2xBinding((FrameLayout) rootView, widgetBgImage, widgetText);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,80 @@
// Generated by view binder compiler. Do not edit!
package net.micode.notes.databinding;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.viewbinding.ViewBinding;
import android.viewbinding.ViewBindings;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
import net.micode.notes.R;
public final class Widget4xBinding implements ViewBinding {
@NonNull
private final FrameLayout rootView;
@NonNull
public final ImageView widgetBgImage;
@NonNull
public final TextView widgetText;
private Widget4xBinding(@NonNull FrameLayout rootView, @NonNull ImageView widgetBgImage,
@NonNull TextView widgetText) {
this.rootView = rootView;
this.widgetBgImage = widgetBgImage;
this.widgetText = widgetText;
}
@Override
@NonNull
public FrameLayout getRoot() {
return rootView;
}
@NonNull
public static Widget4xBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static Widget4xBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.widget_4x, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static Widget4xBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.widget_bg_image;
ImageView widgetBgImage = ViewBindings.findChildViewById(rootView, id);
if (widgetBgImage == null) {
break missingId;
}
id = R.id.widget_text;
TextView widgetText = ViewBindings.findChildViewById(rootView, id);
if (widgetText == null) {
break missingId;
}
return new Widget4xBinding((FrameLayout) rootView, widgetBgImage, widgetText);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}

@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "net.micode.notes",
"variantName": "debug",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "0.1",
"outputFile": "app-debug.apk"
}
],
"elementType": "File"
}

@ -0,0 +1,2 @@
#- File Locator -
listingFile=../../apk/debug/output-metadata.json

@ -0,0 +1,2 @@
#- File Locator -
listingFile=../../../outputs/apk/androidTest/debug/output-metadata.json

@ -0,0 +1,2 @@
appMetadataVersion=1.1
androidGradlePluginVersion=8.0.1

@ -0,0 +1,10 @@
{
"version": 3,
"artifactType": {
"type": "COMPATIBLE_SCREEN_MANIFEST",
"kind": "Directory"
},
"applicationId": "net.micode.notes",
"variantName": "debug",
"elements": []
}

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="account_dialog_title" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\account_dialog_title.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/account_dialog_title_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="42" endOffset="14"/></Target><Target id="@+id/account_dialog_title" view="TextView"><Expressions/><location startLine="23" startOffset="4" endLine="32" endOffset="45"/></Target><Target id="@+id/account_dialog_subtitle" view="TextView"><Expressions/><location startLine="34" startOffset="4" endLine="40" endOffset="33"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_change_password" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_change_password.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_change_password_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="68" endOffset="14"/></Target><Target id="@+id/old_password" view="EditText"><Expressions/><location startLine="17" startOffset="8" endLine="22" endOffset="39"/></Target><Target id="@+id/new_password" view="EditText"><Expressions/><location startLine="32" startOffset="8" endLine="37" endOffset="39"/></Target><Target id="@+id/ack_password" view="EditText"><Expressions/><location startLine="48" startOffset="8" endLine="53" endOffset="39"/></Target><Target id="@+id/Acknowledged" view="Button"><Expressions/><location startLine="61" startOffset="8" endLine="65" endOffset="30"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_delete_password" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_delete_password.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_delete_password_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="30" endOffset="14"/></Target><Target id="@+id/thepassword" view="EditText"><Expressions/><location startLine="15" startOffset="8" endLine="19" endOffset="36"/></Target><Target id="@+id/Dt_Acknowledged" view="Button"><Expressions/><location startLine="24" startOffset="33" endLine="28" endOffset="26"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_login" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_login.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_login_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="33" endOffset="14"/></Target><Target id="@+id/lg_password" view="EditText"><Expressions/><location startLine="16" startOffset="8" endLine="20" endOffset="36"/></Target><Target id="@+id/login" view="Button"><Expressions/><location startLine="27" startOffset="8" endLine="31" endOffset="30"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_set_loginpassword" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_set_loginpassword.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_set_loginpassword_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="55" endOffset="14"/></Target><Target id="@+id/password" view="EditText"><Expressions/><location startLine="19" startOffset="8" endLine="23" endOffset="37"/></Target><Target id="@+id/password_ack" view="EditText"><Expressions/><location startLine="37" startOffset="8" endLine="41" endOffset="37"/></Target><Target id="@+id/acknowledge" view="Button"><Expressions/><location startLine="49" startOffset="8" endLine="53" endOffset="31"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_splash" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_splash.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/activity_splash_0" view="FrameLayout"><Expressions/><location startLine="1" startOffset="0" endLine="54" endOffset="13"/></Target><Target id="@+id/fullscreen_content" view="TextView"><Expressions/><location startLine="21" startOffset="8" endLine="30" endOffset="34"/></Target><Target id="@+id/fullscreen_content_controls" view="LinearLayout"><Expressions/><location startLine="33" startOffset="8" endLine="50" endOffset="22"/></Target><Target id="@+id/dummy_button" view="Button"><Expressions/><location startLine="42" startOffset="12" endLine="48" endOffset="39"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="add_account_text" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\add_account_text.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/add_account_text_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="31" endOffset="14"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="datetime_picker" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\datetime_picker.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/datetime_picker_0" view="LinearLayout"><Expressions/><location startLine="15" startOffset="0" endLine="55" endOffset="14"/></Target><Target id="@+id/date" view="NumberPicker"><Expressions/><location startLine="21" startOffset="4" endLine="27" endOffset="9"/></Target><Target id="@+id/hour" view="NumberPicker"><Expressions/><location startLine="29" startOffset="4" endLine="36" endOffset="9"/></Target><Target id="@+id/minute" view="NumberPicker"><Expressions/><location startLine="38" startOffset="4" endLine="45" endOffset="9"/></Target><Target id="@+id/amPm" view="NumberPicker"><Expressions/><location startLine="47" startOffset="4" endLine="54" endOffset="9"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="dialog_edit_text" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\dialog_edit_text.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.EditText" rootNodeViewId="@+id/et_foler_name"><Targets><Target id="@+id/et_foler_name" tag="layout/dialog_edit_text_0" view="EditText"><Expressions/><location startLine="17" startOffset="0" endLine="22" endOffset="41"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="folder_list_item" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\folder_list_item.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/folder_list_item_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="28" endOffset="14"/></Target><Target id="@+id/tv_folder_name" view="TextView"><Expressions/><location startLine="22" startOffset="4" endLine="27" endOffset="67"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="note_edit" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\note_edit.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/note_edit_0" view="FrameLayout"><Expressions/><location startLine="17" startOffset="0" endLine="415" endOffset="13"/></Target><Target id="@+id/note_title" view="LinearLayout"><Expressions/><location startLine="28" startOffset="8" endLine="79" endOffset="22"/></Target><Target id="@+id/text_num" view="TextView"><Expressions/><location startLine="34" startOffset="12" endLine="39" endOffset="46"/></Target><Target id="@+id/tv_modified_date" view="TextView"><Expressions/><location startLine="41" startOffset="12" endLine="48" endOffset="77"/></Target><Target id="@+id/iv_alert_icon" view="ImageView"><Expressions/><location startLine="50" startOffset="12" endLine="55" endOffset="60"/></Target><Target id="@+id/tv_alert_date" view="TextView"><Expressions/><location startLine="57" startOffset="12" endLine="64" endOffset="77"/></Target><Target id="@+id/btn_SetType" view="Button"><Expressions/><location startLine="66" startOffset="12" endLine="72" endOffset="48"/></Target><Target id="@+id/sv_note_edit" view="LinearLayout"><Expressions/><location startLine="81" startOffset="8" endLine="131" endOffset="22"/></Target><Target id="@+id/note_edit_view" view="net.micode.notes.ui.NoteEditText"><Expressions/><location startLine="105" startOffset="20" endLine="115" endOffset="61"/></Target><Target id="@+id/note_edit_list" view="LinearLayout"><Expressions/><location startLine="117" startOffset="20" endLine="123" endOffset="51"/></Target><Target id="@+id/btn_set_bg_color" view="ImageView"><Expressions/><location startLine="134" startOffset="4" endLine="139" endOffset="44"/></Target><Target id="@+id/note_bg_color_selector" view="LinearLayout"><Expressions/><location startLine="141" startOffset="4" endLine="253" endOffset="18"/></Target><Target id="@+id/iv_bg_yellow" view="ImageView"><Expressions/><location startLine="156" startOffset="12" endLine="159" endOffset="54"/></Target><Target id="@+id/iv_bg_yellow_select" view="ImageView"><Expressions/><location startLine="161" startOffset="12" endLine="169" endOffset="50"/></Target><Target id="@+id/iv_bg_blue" view="ImageView"><Expressions/><location startLine="177" startOffset="12" endLine="180" endOffset="54"/></Target><Target id="@+id/iv_bg_blue_select" view="ImageView"><Expressions/><location startLine="182" startOffset="12" endLine="190" endOffset="50"/></Target><Target id="@+id/iv_bg_white" view="ImageView"><Expressions/><location startLine="198" startOffset="12" endLine="201" endOffset="54"/></Target><Target id="@+id/iv_bg_white_select" view="ImageView"><Expressions/><location startLine="203" startOffset="12" endLine="211" endOffset="50"/></Target><Target id="@+id/iv_bg_green" view="ImageView"><Expressions/><location startLine="219" startOffset="12" endLine="222" endOffset="54"/></Target><Target id="@+id/iv_bg_green_select" view="ImageView"><Expressions/><location startLine="224" startOffset="12" endLine="231" endOffset="50"/></Target><Target id="@+id/iv_bg_red" view="ImageView"><Expressions/><location startLine="239" startOffset="12" endLine="242" endOffset="54"/></Target><Target id="@+id/iv_bg_red_select" view="ImageView"><Expressions/><location startLine="244" startOffset="12" endLine="251" endOffset="50"/></Target><Target id="@+id/font_size_selector" view="LinearLayout"><Expressions/><location startLine="255" startOffset="4" endLine="414" endOffset="18"/></Target><Target id="@+id/ll_font_small" view="FrameLayout"><Expressions/><location startLine="263" startOffset="8" endLine="299" endOffset="21"/></Target><Target id="@+id/iv_small_select" view="ImageView"><Expressions/><location startLine="289" startOffset="12" endLine="298" endOffset="50"/></Target><Target id="@+id/ll_font_normal" view="FrameLayout"><Expressions/><location startLine="301" startOffset="8" endLine="337" endOffset="21"/></Target><Target id="@+id/iv_medium_select" view="ImageView"><Expressions/><location startLine="327" startOffset="12" endLine="336" endOffset="50"/></Target><Target id="@+id/ll_font_large" view="FrameLayout"><Expressions/><location startLine="339" startOffset="8" endLine="375" endOffset="21"/></Target><Target id="@+id/iv_large_select" view="ImageView"><Expressions/><location startLine="365" startOffset="12" endLine="374" endOffset="50"/></Target><Target id="@+id/ll_font_super" view="FrameLayout"><Expressions/><location startLine="377" startOffset="8" endLine="413" endOffset="21"/></Target><Target id="@+id/iv_super_select" view="ImageView"><Expressions/><location startLine="403" startOffset="12" endLine="412" endOffset="50"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="note_edit_list_item" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\note_edit_list_item.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/note_edit_list_item_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="38" endOffset="14"/></Target><Target id="@+id/cb_edit_item" view="CheckBox"><Expressions/><location startLine="22" startOffset="4" endLine="28" endOffset="43"/></Target><Target id="@+id/et_edit_text" view="net.micode.notes.ui.NoteEditText"><Expressions/><location startLine="30" startOffset="4" endLine="37" endOffset="36"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="note_item" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\note_item.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout" rootNodeViewId="@+id/note_item"><Targets><Target id="@+id/note_item" tag="layout/note_item_0" view="FrameLayout"><Expressions/><location startLine="17" startOffset="0" endLine="84" endOffset="13"/></Target><Target id="@+id/tv_name" view="TextView"><Expressions/><location startLine="35" startOffset="12" endLine="41" endOffset="43"/></Target><Target id="@+id/tv_title" view="TextView"><Expressions/><location startLine="48" startOffset="16" endLine="53" endOffset="47"/></Target><Target id="@+id/tv_type" view="TextView"><Expressions/><location startLine="55" startOffset="16" endLine="60" endOffset="47"/></Target><Target id="@+id/tv_time" view="TextView"><Expressions/><location startLine="62" startOffset="16" endLine="66" endOffset="81"/></Target><Target id="@android:id/checkbox" view="CheckBox"><Expressions/><location startLine="70" startOffset="8" endLine="76" endOffset="39"/></Target><Target id="@+id/iv_alert_icon" view="ImageView"><Expressions/><location startLine="79" startOffset="4" endLine="83" endOffset="43"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="note_list" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\note_list.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/note_list_0" view="FrameLayout"><Expressions/><location startLine="17" startOffset="0" endLine="56" endOffset="13"/></Target><Target id="@+id/tv_title_bar" view="TextView"><Expressions/><location startLine="27" startOffset="8" endLine="36" endOffset="61"/></Target><Target id="@+id/notes_list" view="ListView"><Expressions/><location startLine="38" startOffset="8" endLine="46" endOffset="40"/></Target><Target id="@+id/btn_new_note" view="Button"><Expressions/><location startLine="49" startOffset="4" endLine="55" endOffset="41"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="note_list_dropdown_menu" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\note_list_dropdown_menu.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout" rootNodeViewId="@+id/navigation_bar"><Targets><Target id="@+id/navigation_bar" tag="layout/note_list_dropdown_menu_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="31" endOffset="14"/></Target><Target id="@+id/selection_menu" view="Button"><Expressions/><location startLine="24" startOffset="4" endLine="30" endOffset="57"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="note_list_footer" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\note_list_footer.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.view.View"><Targets><Target tag="layout/note_list_footer_0" view="View"><Expressions/><location startLine="17" startOffset="0" endLine="23" endOffset="51"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="settings_header" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\settings_header.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/settings_header_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="40" endOffset="14"/></Target><Target id="@+id/preference_sync_button" view="Button"><Expressions/><location startLine="23" startOffset="4" endLine="31" endOffset="67"/></Target><Target id="@+id/prefenerece_sync_status_textview" view="TextView"><Expressions/><location startLine="33" startOffset="4" endLine="38" endOffset="34"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="widget_2x" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\widget_2x.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/widget_2x_0" view="FrameLayout"><Expressions/><location startLine="17" startOffset="0" endLine="36" endOffset="13"/></Target><Target id="@+id/widget_bg_image" view="ImageView"><Expressions/><location startLine="21" startOffset="4" endLine="24" endOffset="45"/></Target><Target id="@+id/widget_text" view="TextView"><Expressions/><location startLine="25" startOffset="4" endLine="35" endOffset="45"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="widget_4x" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\widget_4x.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/widget_4x_0" view="FrameLayout"><Expressions/><location startLine="17" startOffset="0" endLine="38" endOffset="13"/></Target><Target id="@+id/widget_bg_image" view="ImageView"><Expressions/><location startLine="22" startOffset="4" endLine="25" endOffset="45"/></Target><Target id="@+id/widget_text" view="TextView"><Expressions/><location startLine="27" startOffset="4" endLine="37" endOffset="45"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="account_dialog_title" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\account_dialog_title.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/account_dialog_title_0" view="LinearLayout"><Expressions/><location startLine="17" startOffset="0" endLine="42" endOffset="14"/></Target><Target id="@+id/account_dialog_title" view="TextView"><Expressions/><location startLine="23" startOffset="4" endLine="32" endOffset="45"/></Target><Target id="@+id/account_dialog_subtitle" view="TextView"><Expressions/><location startLine="34" startOffset="4" endLine="40" endOffset="33"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_change_password" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_change_password.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_change_password_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="68" endOffset="14"/></Target><Target id="@+id/old_password" view="EditText"><Expressions/><location startLine="17" startOffset="8" endLine="22" endOffset="39"/></Target><Target id="@+id/new_password" view="EditText"><Expressions/><location startLine="32" startOffset="8" endLine="37" endOffset="39"/></Target><Target id="@+id/ack_password" view="EditText"><Expressions/><location startLine="48" startOffset="8" endLine="53" endOffset="39"/></Target><Target id="@+id/Acknowledged" view="Button"><Expressions/><location startLine="61" startOffset="8" endLine="65" endOffset="30"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_delete_password" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_delete_password.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_delete_password_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="30" endOffset="14"/></Target><Target id="@+id/thepassword" view="EditText"><Expressions/><location startLine="15" startOffset="8" endLine="19" endOffset="36"/></Target><Target id="@+id/Dt_Acknowledged" view="Button"><Expressions/><location startLine="24" startOffset="33" endLine="28" endOffset="26"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_login" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_login.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_login_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="33" endOffset="14"/></Target><Target id="@+id/lg_password" view="EditText"><Expressions/><location startLine="16" startOffset="8" endLine="20" endOffset="36"/></Target><Target id="@+id/login" view="Button"><Expressions/><location startLine="27" startOffset="8" endLine="31" endOffset="30"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_set_loginpassword" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_set_loginpassword.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.LinearLayout"><Targets><Target tag="layout/activity_set_loginpassword_0" view="LinearLayout"><Expressions/><location startLine="2" startOffset="0" endLine="55" endOffset="14"/></Target><Target id="@+id/password" view="EditText"><Expressions/><location startLine="19" startOffset="8" endLine="23" endOffset="37"/></Target><Target id="@+id/password_ack" view="EditText"><Expressions/><location startLine="37" startOffset="8" endLine="41" endOffset="37"/></Target><Target id="@+id/acknowledge" view="Button"><Expressions/><location startLine="49" startOffset="8" endLine="53" endOffset="31"/></Target></Targets></Layout>

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_splash" modulePackage="net.micode.notes" filePath="app\src\main\res\layout\activity_splash.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/activity_splash_0" view="FrameLayout"><Expressions/><location startLine="1" startOffset="0" endLine="54" endOffset="13"/></Target><Target id="@+id/fullscreen_content" view="TextView"><Expressions/><location startLine="21" startOffset="8" endLine="30" endOffset="34"/></Target><Target id="@+id/fullscreen_content_controls" view="LinearLayout"><Expressions/><location startLine="33" startOffset="8" endLine="50" endOffset="22"/></Target><Target id="@+id/dummy_button" view="Button"><Expressions/><location startLine="42" startOffset="12" endLine="48" endOffset="39"/></Target></Targets></Layout>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save