From d69c29c6f5a05c727c68a9cadc3c4a1e87f9370e Mon Sep 17 00:00:00 2001 From: qq549631030 Date: Fri, 20 Jan 2017 15:06:57 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E9=80=82=E9=85=8DAndroid6.0=E6=9D=83?= =?UTF-8?q?=E9=99=90=EF=BC=8C=E9=80=82=E9=85=8DAndroid7.0=20FileProvider?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 ++++---- app/src/main/AndroidManifest.xml | 9 +++++++++ app/src/main/res/xml/file_paths.xml | 6 ++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- multi-image-selector/build.gradle | 10 +++++----- .../src/main/AndroidManifest.xml | 1 + .../MultiImageSelectorFragment.java | 18 +++++++++++------- .../src/main/res/values-zh/strings.xml | 1 + .../src/main/res/values/strings.xml | 1 + 10 files changed, 41 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/xml/file_paths.xml diff --git a/app/build.gradle b/app/build.gradle index 6536c30..9252e01 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion 25 + buildToolsVersion '25.0.1' defaultConfig { applicationId "me.nereo.multiimageselector" minSdkVersion 12 - targetSdkVersion 23 + targetSdkVersion 25 versionCode 1 versionName "1.0" } @@ -21,6 +21,6 @@ android { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:23.4.0' compile project(':multi-image-selector') + compile 'com.android.support:appcompat-v7:25.1.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 38546eb..e617fcb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,6 +7,15 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > + + + diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..e69a079 --- /dev/null +++ b/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index f6e9073..f46d653 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 7af1915..f445ef4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed May 18 11:49:16 CST 2016 +#Fri Jan 20 11:08:16 CST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/multi-image-selector/build.gradle b/multi-image-selector/build.gradle index dba9a97..63a1324 100644 --- a/multi-image-selector/build.gradle +++ b/multi-image-selector/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion 25 + buildToolsVersion '25.0.1' defaultConfig { minSdkVersion 12 - targetSdkVersion 23 + targetSdkVersion 25 versionCode 1 versionName "1.1" } @@ -21,7 +21,7 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:23.4.0' + compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.squareup.picasso:picasso:2.4.0' + compile 'com.android.support:appcompat-v7:25.1.0' } diff --git a/multi-image-selector/src/main/AndroidManifest.xml b/multi-image-selector/src/main/AndroidManifest.xml index 7fd4a3a..b80c07a 100644 --- a/multi-image-selector/src/main/AndroidManifest.xml +++ b/multi-image-selector/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ + diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java index 4c068c6..b16d2fc 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java @@ -12,6 +12,7 @@ import android.graphics.Point; import android.graphics.drawable.ColorDrawable; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.provider.MediaStore; @@ -21,6 +22,7 @@ import android.support.v4.app.LoaderManager; import android.support.v4.content.ContextCompat; import android.support.v4.content.CursorLoader; +import android.support.v4.content.FileProvider; import android.support.v4.content.Loader; import android.support.v7.app.AlertDialog; import android.support.v7.widget.ListPopupWindow; @@ -57,7 +59,7 @@ public class MultiImageSelectorFragment extends Fragment { public static final String TAG = "MultiImageSelectorFragment"; - private static final int REQUEST_STORAGE_WRITE_ACCESS_PERMISSION = 110; + private static final int REQUEST_CAMERA_PERMISSION = 110; private static final int REQUEST_CAMERA = 100; private static final String KEY_TEMP_FILE = "key_temp_file"; @@ -303,11 +305,12 @@ public void onConfigurationChanged(Configuration newConfig) { * Open camera */ private void showCameraAction() { - if(ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN // Permission was added in API Level 16 + &&ContextCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){ - requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, - getString(R.string.mis_permission_rationale_write_storage), - REQUEST_STORAGE_WRITE_ACCESS_PERMISSION); + requestPermission(Manifest.permission.CAMERA, + getString(R.string.mis_permission_rationale_camera), + REQUEST_CAMERA_PERMISSION); }else { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (intent.resolveActivity(getActivity().getPackageManager()) != null) { @@ -317,7 +320,8 @@ private void showCameraAction() { e.printStackTrace(); } if (mTmpFile != null && mTmpFile.exists()) { - intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mTmpFile)); + Uri imageUri = FileProvider.getUriForFile(getContext(), "me.nereo.multiimageselector.fileprovider", mTmpFile);//通过FileProvider创建一个content类型的Uri + intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, REQUEST_CAMERA); } else { Toast.makeText(getActivity(), R.string.mis_error_image_not_exist, Toast.LENGTH_SHORT).show(); @@ -348,7 +352,7 @@ public void onClick(DialogInterface dialog, int which) { @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if(requestCode == REQUEST_STORAGE_WRITE_ACCESS_PERMISSION){ + if(requestCode == REQUEST_CAMERA_PERMISSION){ if(grantResults[0] == PackageManager.PERMISSION_GRANTED){ showCameraAction(); } diff --git a/multi-image-selector/src/main/res/values-zh/strings.xml b/multi-image-selector/src/main/res/values-zh/strings.xml index 1885919..bff3662 100644 --- a/multi-image-selector/src/main/res/values-zh/strings.xml +++ b/multi-image-selector/src/main/res/values-zh/strings.xml @@ -12,5 +12,6 @@ 拒绝 浏览图片需要您提供浏览存储的权限 + 拍摄照片需要您提交摄像头权限 保存拍照图片需要您提供写存储权限 diff --git a/multi-image-selector/src/main/res/values/strings.xml b/multi-image-selector/src/main/res/values/strings.xml index 75de533..9662246 100644 --- a/multi-image-selector/src/main/res/values/strings.xml +++ b/multi-image-selector/src/main/res/values/strings.xml @@ -13,5 +13,6 @@ OK CANCEL Storage read permission is needed to pick files. + Camera permission is needed to take photo. Storage write permission is needed to save the image. From ce27c21fa02d7b5668a40b35954ed6137dcebb10 Mon Sep 17 00:00:00 2001 From: huangxiang <549631030@qq.com> Date: Wed, 15 Feb 2017 00:19:14 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9file=5Fprovider?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 10 +--------- multi-image-selector/src/main/AndroidManifest.xml | 10 +++++++++- .../MultiImageSelectorFragment.java | 2 +- .../src/main/res/xml/mis_file_paths.xml | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) rename app/src/main/res/xml/file_paths.xml => multi-image-selector/src/main/res/xml/mis_file_paths.xml (61%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e617fcb..9667b17 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,15 +7,7 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > - - - + diff --git a/multi-image-selector/src/main/AndroidManifest.xml b/multi-image-selector/src/main/AndroidManifest.xml index b80c07a..0388d83 100644 --- a/multi-image-selector/src/main/AndroidManifest.xml +++ b/multi-image-selector/src/main/AndroidManifest.xml @@ -6,7 +6,15 @@ - + + + diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java index b16d2fc..967466e 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java @@ -320,7 +320,7 @@ private void showCameraAction() { e.printStackTrace(); } if (mTmpFile != null && mTmpFile.exists()) { - Uri imageUri = FileProvider.getUriForFile(getContext(), "me.nereo.multiimageselector.fileprovider", mTmpFile);//通过FileProvider创建一个content类型的Uri + Uri imageUri = FileProvider.getUriForFile(getContext(), getContext().getPackageName() + ".mis.fileprovider", mTmpFile);//通过FileProvider创建一个content类型的Uri intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, REQUEST_CAMERA); } else { diff --git a/app/src/main/res/xml/file_paths.xml b/multi-image-selector/src/main/res/xml/mis_file_paths.xml similarity index 61% rename from app/src/main/res/xml/file_paths.xml rename to multi-image-selector/src/main/res/xml/mis_file_paths.xml index e69a079..9b2a5e8 100644 --- a/app/src/main/res/xml/file_paths.xml +++ b/multi-image-selector/src/main/res/xml/mis_file_paths.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file From f29a056a403415183956335bc87f2c6a120a5bf6 Mon Sep 17 00:00:00 2001 From: qq549631030 <549631030@qq.com> Date: Wed, 15 Feb 2017 15:04:38 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=88=B0jcenter=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 8 +- multi-image-selector/bintrayUpload.gradle | 117 ++++++++++++++++++++++ multi-image-selector/build.gradle | 2 + multi-image-selector/project.properties | 10 ++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 multi-image-selector/bintrayUpload.gradle create mode 100644 multi-image-selector/project.properties diff --git a/build.gradle b/build.gradle index f46d653..6d56d1e 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,8 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' - + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -16,4 +17,9 @@ allprojects { repositories { jcenter() } + + tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + options.addStringOption('encoding', 'UTF-8') + } } diff --git a/multi-image-selector/bintrayUpload.gradle b/multi-image-selector/bintrayUpload.gradle new file mode 100644 index 0000000..084a8cc --- /dev/null +++ b/multi-image-selector/bintrayUpload.gradle @@ -0,0 +1,117 @@ +apply plugin: 'com.github.dcendents.android-maven' +apply plugin: 'com.jfrog.bintray' + +// load properties +Properties properties = new Properties() +File localPropertiesFile = project.file("local.properties"); +if(localPropertiesFile.exists()){ + properties.load(localPropertiesFile.newDataInputStream()) +} +File projectPropertiesFile = project.file("project.properties"); +if(projectPropertiesFile.exists()){ + properties.load(projectPropertiesFile.newDataInputStream()) +} + +// read properties +def projectName = properties.getProperty("project.name") +def projectGroupId = properties.getProperty("project.groupId") +def projectArtifactId = properties.getProperty("project.artifactId") +def projectVersionName = android.defaultConfig.versionName +def projectPackaging = properties.getProperty("project.packaging") +def projectSiteUrl = properties.getProperty("project.siteUrl") +def projectGitUrl = properties.getProperty("project.gitUrl") + +def developerId = properties.getProperty("developer.id") +def developerName = properties.getProperty("developer.name") +def developerEmail = properties.getProperty("developer.email") + +def bintrayUser = properties.getProperty("bintray.user") +def bintrayApikey = properties.getProperty("bintray.apikey") + +def javadocName = properties.getProperty("javadoc.name") + +group = projectGroupId + +// This generates POM.xml with proper parameters +install { + repositories.mavenInstaller { + pom { + project { + name projectName + groupId projectGroupId + artifactId projectArtifactId + version projectVersionName + packaging projectPackaging + url projectSiteUrl + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + developers { + developer { + id developerId + name developerName + email developerEmail + } + } + scm { + connection projectGitUrl + developerConnection projectGitUrl + url projectSiteUrl + } + } + } + } +} + +// This generates sources.jar +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + failOnError false +} + +// This generates javadoc.jar +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives javadocJar + archives sourcesJar +} + +// javadoc configuration +javadoc { + options{ + encoding "UTF-8" + charSet 'UTF-8' + author true + version projectVersionName + links "http://docs.oracle.com/javase/7/docs/api" + title javadocName + } +} + +// bintray configuration +bintray { + user = bintrayUser + key = bintrayApikey + configurations = ['archives'] + pkg { + repo = "maven" + name = projectName + websiteUrl = projectSiteUrl + vcsUrl = projectGitUrl + licenses = ["Apache-2.0"] + publish = true + } +} \ No newline at end of file diff --git a/multi-image-selector/build.gradle b/multi-image-selector/build.gradle index 63a1324..f2a97ed 100644 --- a/multi-image-selector/build.gradle +++ b/multi-image-selector/build.gradle @@ -25,3 +25,5 @@ dependencies { compile 'com.squareup.picasso:picasso:2.4.0' compile 'com.android.support:appcompat-v7:25.1.0' } + +apply from: "bintrayUpload.gradle" \ No newline at end of file diff --git a/multi-image-selector/project.properties b/multi-image-selector/project.properties new file mode 100644 index 0000000..b294019 --- /dev/null +++ b/multi-image-selector/project.properties @@ -0,0 +1,10 @@ +#project +project.name=Multi-Image-Selector +project.groupId=com.hx.multi-image-selector +project.artifactId=multi-image-selector +project.packaging=aar +project.siteUrl=https://github.com/qq549631030/MultiImageSelector +project.gitUrl=https://github.com/qq549631030/MultiImageSelector.git + +#javadoc +javadoc.name=Multi-Image-Selector \ No newline at end of file From d06b510a45e5abf9d5914a9001bf23dee373ac30 Mon Sep 17 00:00:00 2001 From: qq549631030 <549631030@qq.com> Date: Wed, 15 Feb 2017 16:13:46 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9javadoc=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 5 ----- multi-image-selector/build.gradle | 9 +++++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 6d56d1e..4e7d950 100644 --- a/build.gradle +++ b/build.gradle @@ -17,9 +17,4 @@ allprojects { repositories { jcenter() } - - tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') - options.addStringOption('encoding', 'UTF-8') - } } diff --git a/multi-image-selector/build.gradle b/multi-image-selector/build.gradle index f2a97ed..d364506 100644 --- a/multi-image-selector/build.gradle +++ b/multi-image-selector/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion 12 targetSdkVersion 25 versionCode 1 - versionName "1.1" + versionName "1.1.0" } buildTypes { release { @@ -22,8 +22,13 @@ android { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.squareup.picasso:picasso:2.4.0' + compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.android.support:appcompat-v7:25.1.0' } +tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + options.addStringOption('encoding', 'UTF-8') +} + apply from: "bintrayUpload.gradle" \ No newline at end of file From 3b31c0496c42be099e6cd032ed29bd26150ee424 Mon Sep 17 00:00:00 2001 From: qq549631030 <549631030@qq.com> Date: Thu, 16 Feb 2017 17:12:43 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=B8=BA1.2.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- multi-image-selector/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multi-image-selector/build.gradle b/multi-image-selector/build.gradle index d364506..90ecbc2 100644 --- a/multi-image-selector/build.gradle +++ b/multi-image-selector/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion 12 targetSdkVersion 25 versionCode 1 - versionName "1.1.0" + versionName "1.2.1" } buildTypes { release { From 2c8ebbbcc9e5bbc5a24e8222c78a13da133f6dae Mon Sep 17 00:00:00 2001 From: huangxiang <549631030@qq.com> Date: Thu, 30 Mar 2017 15:10:37 +0800 Subject: [PATCH 6/9] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0d4812b..0829553 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ repositories { } dependencies { - compile 'com.github.lovetuzitong:MultiImageSelector:1.2' + //compile 'com.github.lovetuzitong:MultiImageSelector:1.2' + compile 'com.hx.multi-image-selector:multi-image-selector:1.2.1' } ``` @@ -189,4 +190,4 @@ copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: >The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. \ No newline at end of file +copies or substantial portions of the Software. From 0f8d91a9d7e5c864eb5cbff315a55bdea955dccf Mon Sep 17 00:00:00 2001 From: huangx Date: Fri, 15 Dec 2017 17:58:43 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BD=8E=E4=BA=8E?= =?UTF-8?q?=E7=BA=A2=E7=B1=B3=E6=89=8B=E6=9C=BA=E5=B4=A9=E6=BA=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- README_zh.md | 5 +++-- multi-image-selector/build.gradle | 6 ++++-- multi-image-selector/src/main/AndroidManifest.xml | 4 ++-- .../MultiImageSelectorFragment.java | 7 ++++++- .../multi_image_selector/utils/MISFileProvider.java | 11 +++++++++++ 6 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 multi-image-selector/src/main/java/me/nereo/multi_image_selector/utils/MISFileProvider.java diff --git a/README.md b/README.md index 0829553..0361c5a 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,12 @@ Image selector for Android device. Support single choice and multi-choice. Add module `multi-image-selector` as your dependence. in your `build.gradle` : ```java repositories { - maven { url "https://jitpack.io" } + jcenter() } dependencies { //compile 'com.github.lovetuzitong:MultiImageSelector:1.2' - compile 'com.hx.multi-image-selector:multi-image-selector:1.2.1' + compile 'com.hx.multi-image-selector:multi-image-selector:1.2.2' } ``` diff --git a/README_zh.md b/README_zh.md index bfb8bc5..6049a5a 100644 --- a/README_zh.md +++ b/README_zh.md @@ -19,11 +19,12 @@ 把模块 `multi-image-selector` 作为你的项目依赖添加到工程中. 在项目`build.gradle` 中: ```java repositories { - maven { url "https://jitpack.io" } + jcenter() } dependencies { - compile 'com.github.lovetuzitong:MultiImageSelector:1.2' + //compile 'com.github.lovetuzitong:MultiImageSelector:1.2' + compile 'com.hx.multi-image-selector:multi-image-selector:1.2.2' } ``` diff --git a/multi-image-selector/build.gradle b/multi-image-selector/build.gradle index 90ecbc2..3800068 100644 --- a/multi-image-selector/build.gradle +++ b/multi-image-selector/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion 12 targetSdkVersion 25 versionCode 1 - versionName "1.2.1" + versionName "1.2.2" } buildTypes { release { @@ -16,7 +16,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - + lintOptions { + abortOnError false + } resourcePrefix "mis_" } diff --git a/multi-image-selector/src/main/AndroidManifest.xml b/multi-image-selector/src/main/AndroidManifest.xml index 0388d83..b0de6ce 100644 --- a/multi-image-selector/src/main/AndroidManifest.xml +++ b/multi-image-selector/src/main/AndroidManifest.xml @@ -5,9 +5,9 @@ - + diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java index 967466e..a695ade 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java @@ -320,7 +320,12 @@ private void showCameraAction() { e.printStackTrace(); } if (mTmpFile != null && mTmpFile.exists()) { - Uri imageUri = FileProvider.getUriForFile(getContext(), getContext().getPackageName() + ".mis.fileprovider", mTmpFile);//通过FileProvider创建一个content类型的Uri + Uri imageUri = null; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + imageUri = FileProvider.getUriForFile(getContext(), getContext().getPackageName() + ".mis.fileprovider", mTmpFile);//通过FileProvider创建一个content类型的Uri + } else { + imageUri = Uri.fromFile(mTmpFile); + } intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, REQUEST_CAMERA); } else { diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/utils/MISFileProvider.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/utils/MISFileProvider.java new file mode 100644 index 0000000..4c7a857 --- /dev/null +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/utils/MISFileProvider.java @@ -0,0 +1,11 @@ +package me.nereo.multi_image_selector.utils; + +import android.support.v4.content.FileProvider; + +/** + * @author huangx + * @date 2017/12/15 + */ + +public class MISFileProvider extends FileProvider { +} From 98151fd90140a17d1e7836b125c680ba322e2de5 Mon Sep 17 00:00:00 2001 From: huangx Date: Sat, 16 Dec 2017 16:13:42 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=88=B0bintray=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bintray-release.gradle | 42 ++++++++ build.gradle | 3 +- multi-image-selector/bintrayUpload.gradle | 117 ---------------------- multi-image-selector/build.gradle | 38 ++++++- multi-image-selector/project.properties | 6 +- 5 files changed, 81 insertions(+), 125 deletions(-) create mode 100644 bintray-release.gradle delete mode 100644 multi-image-selector/bintrayUpload.gradle diff --git a/bintray-release.gradle b/bintray-release.gradle new file mode 100644 index 0000000..3bfe3bc --- /dev/null +++ b/bintray-release.gradle @@ -0,0 +1,42 @@ +apply plugin: 'com.novoda.bintray-release' + +// This generates sources.jar +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + failOnError false +} + +// This generates javadoc.jar +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives javadocJar + archives sourcesJar +} + +// javadoc configuration +javadoc { + options { + encoding "UTF-8" + charSet 'UTF-8' + author true + } +} + +afterEvaluate { + Task bintrayUploadTask = tasks.findByName('bintrayUpload') + Task generatePomFileForReleasePublicationTask = tasks.findByName('generatePomFileForReleasePublication') + if (bintrayUploadTask != null && generatePomFileForReleasePublicationTask != null) { + bintrayUploadTask.dependsOn generatePomFileForReleasePublicationTask + } +} + diff --git a/build.gradle b/build.gradle index 4e7d950..33e7a5d 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,7 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.2' + classpath 'com.novoda:bintray-release:0.4.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/multi-image-selector/bintrayUpload.gradle b/multi-image-selector/bintrayUpload.gradle deleted file mode 100644 index 084a8cc..0000000 --- a/multi-image-selector/bintrayUpload.gradle +++ /dev/null @@ -1,117 +0,0 @@ -apply plugin: 'com.github.dcendents.android-maven' -apply plugin: 'com.jfrog.bintray' - -// load properties -Properties properties = new Properties() -File localPropertiesFile = project.file("local.properties"); -if(localPropertiesFile.exists()){ - properties.load(localPropertiesFile.newDataInputStream()) -} -File projectPropertiesFile = project.file("project.properties"); -if(projectPropertiesFile.exists()){ - properties.load(projectPropertiesFile.newDataInputStream()) -} - -// read properties -def projectName = properties.getProperty("project.name") -def projectGroupId = properties.getProperty("project.groupId") -def projectArtifactId = properties.getProperty("project.artifactId") -def projectVersionName = android.defaultConfig.versionName -def projectPackaging = properties.getProperty("project.packaging") -def projectSiteUrl = properties.getProperty("project.siteUrl") -def projectGitUrl = properties.getProperty("project.gitUrl") - -def developerId = properties.getProperty("developer.id") -def developerName = properties.getProperty("developer.name") -def developerEmail = properties.getProperty("developer.email") - -def bintrayUser = properties.getProperty("bintray.user") -def bintrayApikey = properties.getProperty("bintray.apikey") - -def javadocName = properties.getProperty("javadoc.name") - -group = projectGroupId - -// This generates POM.xml with proper parameters -install { - repositories.mavenInstaller { - pom { - project { - name projectName - groupId projectGroupId - artifactId projectArtifactId - version projectVersionName - packaging projectPackaging - url projectSiteUrl - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - id developerId - name developerName - email developerEmail - } - } - scm { - connection projectGitUrl - developerConnection projectGitUrl - url projectSiteUrl - } - } - } - } -} - -// This generates sources.jar -task sourcesJar(type: Jar) { - from android.sourceSets.main.java.srcDirs - classifier = 'sources' -} - -task javadoc(type: Javadoc) { - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - failOnError false -} - -// This generates javadoc.jar -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives javadocJar - archives sourcesJar -} - -// javadoc configuration -javadoc { - options{ - encoding "UTF-8" - charSet 'UTF-8' - author true - version projectVersionName - links "http://docs.oracle.com/javase/7/docs/api" - title javadocName - } -} - -// bintray configuration -bintray { - user = bintrayUser - key = bintrayApikey - configurations = ['archives'] - pkg { - repo = "maven" - name = projectName - websiteUrl = projectSiteUrl - vcsUrl = projectGitUrl - licenses = ["Apache-2.0"] - publish = true - } -} \ No newline at end of file diff --git a/multi-image-selector/build.gradle b/multi-image-selector/build.gradle index 3800068..6360788 100644 --- a/multi-image-selector/build.gradle +++ b/multi-image-selector/build.gradle @@ -33,4 +33,40 @@ tasks.withType(Javadoc) { options.addStringOption('encoding', 'UTF-8') } -apply from: "bintrayUpload.gradle" \ No newline at end of file +apply from: rootProject.projectDir.absolutePath + "/bintray-release.gradle" + +// load properties +Properties properties = new Properties() +File localPropertiesFile = project.file("$rootProject.projectDir.absolutePath /local.properties"); +if (localPropertiesFile.exists()) { + properties.load(localPropertiesFile.newDataInputStream()) +} +File projectPropertiesFile = project.file("project.properties"); +if (projectPropertiesFile.exists()) { + properties.load(projectPropertiesFile.newDataInputStream()) +} + +// read properties +def projectName = properties.getProperty("project.name") +def projectGroupId = properties.getProperty("project.groupId") +def projectArtifactId = properties.getProperty("project.artifactId") +def projectVersionName = android.defaultConfig.versionName +def projectSiteUrl = properties.getProperty("project.siteUrl") +def projectGitUrl = properties.getProperty("project.gitUrl") + +def bintray_Org = properties.getProperty("bintray.org") +def bintray_User = properties.getProperty("bintray.user") +def bintrayApikey = properties.getProperty("bintray.apikey") + +publish { + userOrg = bintray_Org + groupId = projectGroupId + artifactId = projectArtifactId + uploadName = projectName + website = projectSiteUrl + repository = projectGitUrl + publishVersion = projectVersionName + bintrayUser = bintray_User + bintrayKey = bintrayApikey + dryRun = true +} \ No newline at end of file diff --git a/multi-image-selector/project.properties b/multi-image-selector/project.properties index b294019..b4747db 100644 --- a/multi-image-selector/project.properties +++ b/multi-image-selector/project.properties @@ -2,9 +2,5 @@ project.name=Multi-Image-Selector project.groupId=com.hx.multi-image-selector project.artifactId=multi-image-selector -project.packaging=aar project.siteUrl=https://github.com/qq549631030/MultiImageSelector -project.gitUrl=https://github.com/qq549631030/MultiImageSelector.git - -#javadoc -javadoc.name=Multi-Image-Selector \ No newline at end of file +project.gitUrl=https://github.com/qq549631030/MultiImageSelector.git \ No newline at end of file From 90e103fe00c5d7d0f95a84c64dd9838257108a6e Mon Sep 17 00:00:00 2001 From: huangx Date: Sat, 16 Dec 2017 17:24:41 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=88=B0bintray=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bintray-release.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bintray-release.gradle b/bintray-release.gradle index 3bfe3bc..f9ecc4c 100644 --- a/bintray-release.gradle +++ b/bintray-release.gradle @@ -34,9 +34,9 @@ javadoc { afterEvaluate { Task bintrayUploadTask = tasks.findByName('bintrayUpload') - Task generatePomFileForReleasePublicationTask = tasks.findByName('generatePomFileForReleasePublication') - if (bintrayUploadTask != null && generatePomFileForReleasePublicationTask != null) { - bintrayUploadTask.dependsOn generatePomFileForReleasePublicationTask + Task uploadArchivesTask = tasks.findByName('uploadArchives') + if (bintrayUploadTask != null && uploadArchivesTask != null) { + bintrayUploadTask.dependsOn uploadArchivesTask } }