diff --git a/src/Notes-master/AndroidManifest.xml b/src/Notes-master/AndroidManifest.xml
index 4620565..c64a4e0 100644
--- a/src/Notes-master/AndroidManifest.xml
+++ b/src/Notes-master/AndroidManifest.xml
@@ -133,6 +133,16 @@
+
+
+
\ No newline at end of file
diff --git a/src/Notes-master/java/net/micode/notes/ui/NoteEditActivity.java b/src/Notes-master/java/net/micode/notes/ui/NoteEditActivity.java
index c97e000..e5ad1d3 100644
--- a/src/Notes-master/java/net/micode/notes/ui/NoteEditActivity.java
+++ b/src/Notes-master/java/net/micode/notes/ui/NoteEditActivity.java
@@ -30,7 +30,7 @@ import android.content.SharedPreferences;
import android.graphics.Paint;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatActivity;
+//import android.support.v7.app.AppCompatActivity;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -53,10 +53,12 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
//维护 添加read
-import android.support.v7.app.AppCompatActivity;
+//import android.support.v7.app.AppCompatActivity;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
+import androidx.appcompat.app.AppCompatActivity;
+
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.TextNote;
@@ -460,7 +462,7 @@ public class NoteEditActivity extends AppCompatActivity implements OnClickListen
if (id == R.id.btn_set_bg_color) {
mNoteBgColorSelector.setVisibility(View.VISIBLE);
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
- - View.VISIBLE);
+ View.VISIBLE);
} else if (sBgSelectorBtnsMap.containsKey(id)) {
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
View.GONE);
diff --git a/src/Notes-master/java/net/micode/notes/ui/NotesListActivity.java b/src/Notes-master/java/net/micode/notes/ui/NotesListActivity.java
index f78ae37..767d34c 100644
--- a/src/Notes-master/java/net/micode/notes/ui/NotesListActivity.java
+++ b/src/Notes-master/java/net/micode/notes/ui/NotesListActivity.java
@@ -39,6 +39,8 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.os.Environment;
+import android.os.FileUtils;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.text.Editable;
@@ -71,7 +73,9 @@ import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;
-import android.support.v7.app.AppCompatActivity;
+//import android.support.v7.app.AppCompatActivity;
+
+import androidx.appcompat.app.AppCompatActivity;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
@@ -86,6 +90,8 @@ import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -177,6 +183,36 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe
setAppInfoFromRawRes();
}
+
+ //维护
+ static void saveBitmap(String name, Bitmap bm, Context mContext) {
+ Log.d("Save Bitmap", "Ready to save picture");
+ //指定我们想要存储文件的地址
+ String TargetPath = mContext.getFilesDir() + "/images/";
+ Log.d("Save Bitmap", "Save Path=" + TargetPath);
+ //判断指定文件夹的路径是否存在
+ //if (!FileUtils.fileIsExist(TargetPath)) {
+ //Log.d("Save Bitmap", "TargetPath isn't exist");
+ // } else {
+ //如果指定文件夹创建成功,那么我们则需要进行图片存储操作
+ File saveFile = new File(TargetPath, name);
+
+ try {
+ FileOutputStream saveImgOut = new FileOutputStream(saveFile);
+ // compress - 压缩的意思
+ bm.compress(Bitmap.CompressFormat.JPEG, 80, saveImgOut);
+ //存储完成后需要清除相关的进程
+ saveImgOut.flush();
+ saveImgOut.close();
+ Log.d("Save Bitmap", "The picture is save to your phone!");
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ //维护
+
+
//维护
@Override
protected void onResume() {
@@ -188,27 +224,16 @@ public class NotesListActivity extends AppCompatActivity implements OnClickListe
else{
Uri selectedImage= Uri.parse(sharedPreferences.getString("PERSONAL_URI",null));
- String [] filePathColumn = {MediaStore.Images.Media.DATA};
- Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
- cursor.moveToFirst();
-
- int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
-
- //Toast.makeText(this, selectedImage.toString(), Toast.LENGTH_SHORT).show();
-
- String path = cursor.getString(columnIndex);
+ Bitmap bitmap = BitmapFactory.decodeFile(selectedImage.toString());
- //确实在这里有错
- //if(path==null)
- //Toast.makeText(this, "failed to get image", Toast.LENGTH_SHORT).show();
-
- Bitmap bitmap = BitmapFactory.decodeFile(path);
- //RelativeLayout layout1 = (RelativeLayout)findViewById(R.id.preference_textview);
+ //Toast.makeText(this, URi, Toast.LENGTH_SHORT).show();
Drawable drawable =new BitmapDrawable(bitmap);
- //layout1.setBackground(drawable);
- //Toast.makeText(this, "failed to get image", Toast.LENGTH_SHORT).show();
getWindow().setBackgroundDrawable(drawable);
+ Bitmap bitmap0 = BitmapFactory.decodeFile(selectedImage.toString());
+
+ //Toast.makeText(this, URi, Toast.LENGTH_SHORT).show();
+ //Toast.makeText(this, "failed to get image", Toast.LENGTH_SHORT).show();
}
}
diff --git a/src/Notes-master/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/Notes-master/java/net/micode/notes/ui/NotesPreferenceActivity.java
index 83857f3..4983504 100644
--- a/src/Notes-master/java/net/micode/notes/ui/NotesPreferenceActivity.java
+++ b/src/Notes-master/java/net/micode/notes/ui/NotesPreferenceActivity.java
@@ -16,14 +16,10 @@
package net.micode.notes.ui;
-import android.Manifest;
import android.accounts.Account;
import android.accounts.AccountManager;
-import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.Notification;
import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
@@ -31,38 +27,47 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
-import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
+import android.os.Environment;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.provider.MediaStore;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
+//import android.support.v4.app.ActivityCompat;
+//import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.text.format.DateFormat;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
+import com.yalantis.ucrop.UCropActivity;
+//import com.bumptech.glide.Glide;
+
+import androidx.core.app.ActivityCompat;
+
+import com.yalantis.ucrop.UCrop;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.gtask.remote.GTaskSyncService;
-import net.micode.notes.ui.NotesListActivity;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
public class NotesPreferenceActivity extends PreferenceActivity {
@@ -182,12 +187,68 @@ public class NotesPreferenceActivity extends PreferenceActivity {
//维护 4
private void openAlbum() {
- //Intent intent = new Intent("android.intent.action.GET_CONTENT");
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, CHOOSE_PHOTO);
}
+ //维护
+ public static String FileSaveToInside(Context context, String fileName, Bitmap bitmap) {
+ FileOutputStream fos = null;
+ String path = null;
+ try {
+ //设置路径 /Android/data/com.panyko.filesave/Pictures/
+ File folder = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
+ //判断目录是否存在
+ //目录不存在时自动创建
+ if (folder.exists() ||folder.mkdir()) {
+ File file = new File(folder, fileName);
+ fos = new FileOutputStream(file);
+ //写入文件
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
+ fos.flush();
+ path = file.getAbsolutePath();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+
+ } finally {
+ try {
+ if (fos != null) {
+ //关闭流
+ fos.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+ //返回路径
+ return path;
+ }
+
+ //维护
+ private Uri bitmap2uri(Bitmap b) {//c.getCacheDir()
+ File path = new File(getCacheDir() + "/123.jpeg");
+ //L.e("getAbsolutePath==="+path.getAbsolutePath()+" ===getAbsolutePath==="+path.getParent());
+ Toast.makeText(this, path.toString(), Toast.LENGTH_SHORT).show();
+ try {
+ OutputStream os = new FileOutputStream(path);
+ b.compress(Bitmap.CompressFormat.JPEG, 100, os);
+ os.close();
+ return Uri.fromFile(path);
+ } catch (Exception ignored) {
+ }
+ return null;
+ }
+
+ //维护
+ ////_______////////
+ //Uri转Bitmap,并复制bitmap
+
+ //Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
+ //bmcopy = bitmap.copy(Bitmap.Config.ARGB_8888, true);
+ /////_______///////
//维护 !
@Override
@@ -197,36 +258,43 @@ public class NotesPreferenceActivity extends PreferenceActivity {
if (requestCode == 1 && resultCode == Activity.RESULT_OK
&& data != null)
{
+
Uri selectedImage = data.getData();//返回的是uri
+ String [] filePathColumn = {MediaStore.Images.Media.DATA};
+ Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
+ cursor.moveToFirst();
+
+ int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
+
+
+ String path = cursor.getString(columnIndex);
+
+
+ Bitmap bitmap = BitmapFactory.decodeFile(path);
+
+ bitmap2uri(bitmap);
+
+ /*
+ String save_uri=FileSaveToInside(this,"123",bitmap);
+
SharedPreferences sharedPreferences=getSharedPreferences("data1", Context.MODE_WORLD_WRITEABLE);//xml
SharedPreferences.Editor editor=sharedPreferences.edit();
//if(!sharedPreferences.contains("PERSONAL_URI")) {
- editor.putString("PERSONAL_URI",selectedImage.toString());
+ editor.putString("PERSONAL_URI",save_uri);
editor.putInt("DEFAULT",0);
editor.commit();
- //}
-
-
- //String [] filePathColumn = {MediaStore.Images.Media.DATA};
- //Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
- //cursor.moveToFirst();
+ */
- //int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
- //String path = cursor.getString(columnIndex);
+ Intent intent = new Intent(NotesPreferenceActivity.this, UCropPictureActivity.class);
- //Bitmap bitmap = BitmapFactory.decodeFile(path);
- //RelativeLayout layout1 = (RelativeLayout)findViewById(R.id.preference_textview);
+ this.startActivityForResult(intent, 12);
- //Drawable drawable =new BitmapDrawable(bitmap);
- //layout1.setBackground(drawable);
- //Toast.makeText(this, "failed to get image", Toast.LENGTH_SHORT).show();
- //getWindow().setBackgroundDrawable(drawable);
finish();
}
}
@@ -234,7 +302,7 @@ public class NotesPreferenceActivity extends PreferenceActivity {
//维护
- private String[] items2={"本地图片","还原","拍照"};
+ private String[] items2={"本地图片","还原"};
//维护 2
public void chooseBackground() {
@@ -248,8 +316,6 @@ public class NotesPreferenceActivity extends PreferenceActivity {
.create(); //创建对话框
dialog.show(); //显示对话框
*/
-
-
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("选择方式");
//builder.setIcon(R.drawable.ic_launcher);
@@ -259,22 +325,10 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
- private void displayImage(String imagePath) {
- if (imagePath != null) {
- Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
- Drawable tupian = new BitmapDrawable(bitmap);
-
- } else {
- Toast.makeText(this, "failed to get image", Toast.LENGTH_SHORT).show();
- }
- }
//维护4.2
private void returnToMenu() {
- //EDIT_BACKGROUND = 1;
- //Intent intent = new Intent(this, NotesListActivity.class);
- //startActivity(intent);
- //NotesPreferenceActivity.this.finish();
+
SharedPreferences sharedPreferences=getSharedPreferences("data1", Context.MODE_WORLD_WRITEABLE);//xml
SharedPreferences.Editor editor=sharedPreferences.edit();
@@ -292,31 +346,10 @@ public class NotesPreferenceActivity extends PreferenceActivity {
switch (which){
case 0://本地图片
- //Toast.makeText(NotesPreferenceActivity.this,"2232",Toast.LENGTH_SHORT).show();
openAlbum();
break;
case 1://还原
-
- //int imgID = getResources().getIdentifier("list_background", "drawable",
- // "netcode.notes");
- //if (imgID != 0) {
- // Drawable drawable = getResources().getDrawable(imgID);
-
- // View temp = findViewById(R.id.notification_background);
- // temp.setBackgroundDrawable(drawable);
-
- //}
- //else{
- // Toast.makeText(NotesPreferenceActivity.this,"2232",Toast.LENGTH_SHORT).show();
- //}
-
- //FrameLayout rootLayout=(FrameLayout)findViewById(R.id.notification_background);
- //if(rootLayout==null)
- // Toast.makeText(NotesPreferenceActivity.this,"2232",Toast.LENGTH_SHORT).show();
- //else
- // rootLayout.setBackgroundResource(R.id.notification_background);
returnToMenu();
-
break;
default:
throw new IllegalStateException("Unexpected value: " + which);
diff --git a/src/Notes-master/java/net/micode/notes/ui/UCropPictureActivity.java b/src/Notes-master/java/net/micode/notes/ui/UCropPictureActivity.java
new file mode 100644
index 0000000..8f6aa72
--- /dev/null
+++ b/src/Notes-master/java/net/micode/notes/ui/UCropPictureActivity.java
@@ -0,0 +1,274 @@
+package net.micode.notes.ui;
+
+import android.annotation.SuppressLint;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.icu.util.Calendar;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Environment;
+import android.provider.DocumentsContract;
+import android.provider.MediaStore;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.yalantis.ucrop.UCrop;
+
+import net.micode.notes.R;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.channels.FileChannel;
+
+public class UCropPictureActivity extends AppCompatActivity {
+
+ Button btnTest;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ btnTest = (Button) findViewById(R.id.btn_test);
+ /*
+ btnTest.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ try {
+ startCrop();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ }
+ });*/
+ try {
+ startCrop();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ finish();
+ }
+
+ //维护
+ public static String FileSaveToInside(Context context, String fileName, Bitmap bitmap) {
+ FileOutputStream fos = null;
+ String path = null;
+ try {
+ //设置路径 /Android/data/com.panyko.filesave/Pictures/
+ File folder = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
+ //判断目录是否存在
+ //目录不存在时自动创建
+ if (folder.exists() ||folder.mkdir()) {
+ File file = new File(folder, fileName);
+ fos = new FileOutputStream(file);
+ //写入文件
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
+ fos.flush();
+ path = file.getAbsolutePath();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+
+ } finally {
+ try {
+ if (fos != null) {
+ //关闭流
+ fos.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+ //返回路径
+ return path;
+ }
+
+ private void startCrop() throws FileNotFoundException {
+
+ //Uri sourceUri = Uri.parse("http://star.xiziwang.net/uploads/allimg/140512/19_140512150412_1.jpg");
+ //裁剪后保存到文件中
+ Uri sourceUri = Uri.fromFile(new File(getCacheDir(), "123.jpeg"));
+ //Toast.makeText(this, sourceUri.toString(), Toast.LENGTH_SHORT).show();
+ Uri destinationUri = Uri.fromFile(new File(getCacheDir(), "SampleCropImage.jpeg"));
+ UCrop.of(sourceUri, destinationUri).withAspectRatio(9, 16).withMaxResultSize(2000, 2500).start(this);
+
+ Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(destinationUri));
+
+ //bmcopy = bitmap.copy(Bitmap.Config.ARGB_8888, true);
+
+ String save=FileSaveToInside(this,"1234",bitmap);
+
+ SharedPreferences sharedPreferences=getSharedPreferences("data1", Context.MODE_WORLD_WRITEABLE);//xml
+ SharedPreferences.Editor editor=sharedPreferences.edit();
+
+ //if(!sharedPreferences.contains("PERSONAL_URI")) {
+
+ editor.putString("PERSONAL_URI",save);
+
+ editor.putInt("DEFAULT",0);
+
+ editor.commit();
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (resultCode == RESULT_OK) {
+ //裁切成功
+ if (requestCode == UCrop.REQUEST_CROP) {
+ Uri croppedFileUri = UCrop.getOutput(data);
+ //获取默认的下载目录
+ String downloadsDirectoryPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
+ @SuppressLint({"NewApi", "LocalSuppress"}) String filename = String.format("%d_%s", Calendar.getInstance().getTimeInMillis(), croppedFileUri.getLastPathSegment());
+ File saveFile = new File(downloadsDirectoryPath, filename);
+ //保存下载的图片
+ FileInputStream inStream = null;
+ FileOutputStream outStream = null;
+ FileChannel inChannel = null;
+ FileChannel outChannel = null;
+ try {
+ inStream = new FileInputStream(new File(croppedFileUri.getPath()));
+ outStream = new FileOutputStream(saveFile);
+ inChannel = inStream.getChannel();
+ outChannel = outStream.getChannel();
+ inChannel.transferTo(0, inChannel.size(), outChannel);
+ Toast.makeText(this, "裁切后的图片保存在:" + saveFile.getAbsolutePath(), Toast.LENGTH_SHORT).show();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outChannel.close();
+ outStream.close();
+ inChannel.close();
+ inStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ //裁切失败
+ if (resultCode == UCrop.RESULT_ERROR) {
+ Toast.makeText(this, "裁切图片失败", Toast.LENGTH_SHORT).show();
+ }
+ }
+
+
+ // 专为Android4.4设计的从Uri获取文件绝对路径,以前的方法已不好使
+ @SuppressLint("NewApi")
+ public static String getPathByUri4kitkat(final Context context, final Uri uri) {
+ final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
+ // DocumentProvider
+ if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
+ if (isExternalStorageDocument(uri)) {// ExternalStorageProvider
+ final String docId = DocumentsContract.getDocumentId(uri);
+ final String[] split = docId.split(":");
+ final String type = split[0];
+ if ("primary".equalsIgnoreCase(type)) {
+ return Environment.getExternalStorageDirectory() + "/" + split[1];
+ }
+ } else if (isDownloadsDocument(uri)) {// DownloadsProvider
+ final String id = DocumentsContract.getDocumentId(uri);
+ final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"),
+ Long.valueOf(id));
+ return getDataColumn(context, contentUri, null, null);
+ } else if (isMediaDocument(uri)) {// MediaProvider
+ final String docId = DocumentsContract.getDocumentId(uri);
+ final String[] split = docId.split(":");
+ final String type = split[0];
+ Uri contentUri = null;
+ if ("image".equals(type)) {
+ contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+ } else if ("video".equals(type)) {
+ contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
+ } else if ("audio".equals(type)) {
+ contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
+ }
+ final String selection = "_id=?";
+ final String[] selectionArgs = new String[] { split[1] };
+ return getDataColumn(context, contentUri, selection, selectionArgs);
+ }
+ } else if ("content".equalsIgnoreCase(uri.getScheme())) {// MediaStore
+ // (and
+ // general)
+ return getDataColumn(context, uri, null, null);
+ } else if ("file".equalsIgnoreCase(uri.getScheme())) {// File
+ return uri.getPath();
+ }
+ return null;
+ }
+
+ /**
+ * Get the value of the data column for this Uri. This is useful for
+ * MediaStore Uris, and other file-based ContentProviders.
+ *
+ * @param context
+ * The context.
+ * @param uri
+ * The Uri to query.
+ * @param selection
+ * (Optional) Filter used in the query.
+ * @param selectionArgs
+ * (Optional) Selection arguments used in the query.
+ * @return The value of the _data column, which is typically a file path.
+ */
+ public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
+ Cursor cursor = null;
+ final String column = "_data";
+ final String[] projection = { column };
+ try {
+ cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
+ if (cursor != null && cursor.moveToFirst()) {
+ final int column_index = cursor.getColumnIndexOrThrow(column);
+ return cursor.getString(column_index);
+ }
+ } finally {
+ if (cursor != null)
+ cursor.close();
+ }
+ return null;
+ }
+
+ /**
+ * @param uri
+ * The Uri to check.
+ * @return Whether the Uri authority is ExternalStorageProvider.
+ */
+ public static boolean isExternalStorageDocument(Uri uri) {
+ return "com.android.externalstorage.documents".equals(uri.getAuthority());
+ }
+
+ /**
+ * @param uri
+ * The Uri to check.
+ * @return Whether the Uri authority is DownloadsProvider.
+ */
+ public static boolean isDownloadsDocument(Uri uri) {
+ return "com.android.providers.downloads.documents".equals(uri.getAuthority());
+ }
+
+ /**
+ * @param uri
+ * The Uri to check.
+ * @return Whether the Uri authority is MediaProvider.
+ */
+ public static boolean isMediaDocument(Uri uri) {
+ return "com.android.providers.media.documents".equals(uri.getAuthority());
+ }
+
+}
diff --git a/src/Notes-master/res/layout/activity_main.xml b/src/Notes-master/res/layout/activity_main.xml
new file mode 100644
index 0000000..c066b63
--- /dev/null
+++ b/src/Notes-master/res/layout/activity_main.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Notes-master/res/layout/edit_picture.xml b/src/Notes-master/res/layout/edit_picture.xml
new file mode 100644
index 0000000..a7a0844
--- /dev/null
+++ b/src/Notes-master/res/layout/edit_picture.xml
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/Notes-master/res/xml/preferences.xml b/src/Notes-master/res/xml/preferences.xml
index f61bc19..d22b269 100644
--- a/src/Notes-master/res/xml/preferences.xml
+++ b/src/Notes-master/res/xml/preferences.xml
@@ -18,6 +18,7 @@
+