From 7cd48da622f3eb9cfb47609e643c9272459cee2c Mon Sep 17 00:00:00 2001 From: Lyndon Date: Fri, 27 Oct 2017 00:11:25 +0200 Subject: [PATCH] Added the file picker --- .../bewoplaner-chat-android/app/build.gradle | 33 +- .../app/src/main/AndroidManifest.xml | 12 + .../app/src/main/assets/impressum.html | 3 - .../filepicker/BaseFilePickerActivity.java | 33 ++ .../filepicker/FilePickerActivity.java | 12 + .../ownchat/filepicker/FilePickerBuilder.java | 157 ++++++ .../ownchat/filepicker/FilePickerConst.java | 49 ++ .../filepicker/MediaDetailsActivity.java | 194 +++++++ .../ownchat/filepicker/PickerManager.java | 232 +++++++++ .../adapters/FileAdapterListener.java | 9 + .../filepicker/adapters/FileListAdapter.java | 122 +++++ .../adapters/FolderGridAdapter.java | 143 ++++++ .../filepicker/adapters/ImageGridAdapter.java | 185 +++++++ .../adapters/SectionsPagerAdapter.java | 41 ++ .../filepicker/adapters/Selectable.java | 15 + .../adapters/SelectableAdapter.java | 72 +++ .../filepicker/cursors/DocScannerTask.java | 122 +++++ .../cursors/ImageDirectoryLoader.java | 50 ++ .../loadercallbacks/FileResultCallback.java | 11 + .../ImageDirLoaderCallback.java | 94 ++++ .../filepicker/fragments/BaseFragment.java | 35 ++ .../filepicker/fragments/DocFragment.java | 132 +++++ .../fragments/DocPickerFragment.java | 156 ++++++ .../ImagePickerFragmentListener.java | 9 + .../fragments/MediaDetailPickerFragment.java | 244 +++++++++ .../fragments/MediaFolderPickerFragment.java | 265 ++++++++++ .../fragments/MediaPickerFragment.java | 107 ++++ .../ownchat/filepicker/models/BaseFile.java | 90 ++++ .../ownchat/filepicker/models/Document.java | 92 ++++ .../ownchat/filepicker/models/FileType.java | 65 +++ .../filepicker/models/ImageDirectory.java | 172 +++++++ .../ownchat/filepicker/models/Media.java | 65 +++ .../utils/AndroidLifecycleUtils.java | 45 ++ .../filepicker/utils/FilePickerProvider.java | 10 + .../ownchat/filepicker/utils/FileUtils.java | 72 +++ .../filepicker/utils/FragmentUtil.java | 76 +++ .../utils/GridSpacingItemDecoration.java | 43 ++ .../filepicker/utils/ImageCaptureManager.java | 123 +++++ .../filepicker/utils/MediaStoreHelper.java | 37 ++ .../ownchat/filepicker/utils/Orientation.java | 11 + .../filepicker/utils/TabLayoutHelper.java | 483 ++++++++++++++++++ .../ownchat/filepicker/utils/Utils.java | 81 +++ .../views/SquareRelativeLayout.java | 35 ++ .../ownchat/page/chat/BaseChatActivity.java | 10 +- .../app/src/main/res/anim/slide_left_in.xml | 4 + .../app/src/main/res/anim/slide_left_out.xml | 4 + .../drawable-hdpi/gallery_album_overlay.9.png | Bin 0 -> 45652 bytes .../drawable-mdpi/gallery_album_overlay.9.png | Bin 0 -> 21335 bytes .../gallery_album_overlay.9.png | Bin 0 -> 80015 bytes .../gallery_album_overlay.9.png | Bin 0 -> 131512 bytes .../gallery_album_overlay.9.png | Bin 0 -> 165839 bytes .../main/res/layout/activity_file_picker.xml | 14 + .../res/layout/activity_media_details.xml | 25 + .../main/res/layout/fragment_doc_picker.xml | 27 + .../main/res/layout/fragment_image_picker.xml | 23 + .../layout/fragment_media_folder_picker.xml | 26 + .../main/res/layout/fragment_media_picker.xml | 20 + .../src/main/res/layout/item_chat_date.xml | 3 +- .../src/main/res/layout/item_doc_layout.xml | 44 ++ .../main/res/layout/item_folder_layout.xml | 68 +++ .../src/main/res/layout/item_image_layout.xml | 42 ++ .../app/src/main/res/menu/picker_menu.xml | 8 + .../src/main/res/mipmap-hdpi/ic_play_icon.png | Bin 0 -> 1398 bytes .../src/main/res/mipmap-mdpi/ic_play_icon.png | Bin 0 -> 930 bytes .../main/res/mipmap-xhdpi/ic_play_icon.png | Bin 0 -> 2063 bytes .../main/res/mipmap-xxhdpi/ic_play_icon.png | Bin 0 -> 3410 bytes .../main/res/mipmap-xxxhdpi/ic_play_icon.png | Bin 0 -> 4908 bytes .../app/src/main/res/values/colors.xml | 1 + .../app/src/main/res/values/strings.xml | 8 + .../app/src/main/res/values/styles.xml | 7 + .../bewoplaner-chat-android/build.gradle | 7 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- 72 files changed, 4352 insertions(+), 30 deletions(-) create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/BaseFilePickerActivity.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerActivity.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerBuilder.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerConst.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/MediaDetailsActivity.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/PickerManager.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/FileAdapterListener.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/FileListAdapter.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/FolderGridAdapter.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/ImageGridAdapter.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/SectionsPagerAdapter.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/Selectable.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/SelectableAdapter.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/cursors/DocScannerTask.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/cursors/ImageDirectoryLoader.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/cursors/loadercallbacks/FileResultCallback.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/cursors/loadercallbacks/ImageDirLoaderCallback.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/BaseFragment.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/DocFragment.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/DocPickerFragment.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/ImagePickerFragmentListener.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaDetailPickerFragment.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaFolderPickerFragment.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaPickerFragment.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/models/BaseFile.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/models/Document.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/models/FileType.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/models/ImageDirectory.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/models/Media.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/AndroidLifecycleUtils.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/FilePickerProvider.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/FileUtils.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/FragmentUtil.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/GridSpacingItemDecoration.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/ImageCaptureManager.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/MediaStoreHelper.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/Orientation.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/TabLayoutHelper.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/utils/Utils.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/views/SquareRelativeLayout.java create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/anim/slide_left_in.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/anim/slide_left_out.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/drawable-hdpi/gallery_album_overlay.9.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/drawable-mdpi/gallery_album_overlay.9.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/drawable-xhdpi/gallery_album_overlay.9.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/drawable-xxhdpi/gallery_album_overlay.9.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/drawable-xxxhdpi/gallery_album_overlay.9.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_file_picker.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_media_details.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/fragment_doc_picker.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/fragment_image_picker.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/fragment_media_folder_picker.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/fragment_media_picker.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_doc_layout.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_folder_layout.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_image_layout.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/menu/picker_menu.xml create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_play_icon.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_play_icon.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_play_icon.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_play_icon.png create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_play_icon.png diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle b/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle index 824bcf2..6ded610 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle @@ -1,5 +1,5 @@ def getGitSha() { - return 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim(); + return 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim() } buildscript { @@ -7,8 +7,8 @@ buildscript { mavenCentral() maven { url 'https://maven.fabric.io/public' } } + dependencies { - classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'io.fabric.tools:gradle:1.+' } } @@ -22,21 +22,21 @@ repositories { maven { url "https://jitpack.io" } } -apply plugin: 'com.neenbedankt.android-apt' -apply plugin: 'me.tatarka.retrolambda' apply plugin: 'realm-android' android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 26 + buildToolsVersion '26.0.2' + defaultConfig { applicationId "de.beyondsoft.ownchat" minSdkVersion 19 - targetSdkVersion 25 + targetSdkVersion 26 versionCode 2 versionName "1.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } + signingConfigs { release { storeFile file('../ownChat.jks') @@ -45,20 +45,24 @@ android { keyPassword '6fhnfqm07tvbagm3t6k4' } } + buildTypes { debug { ext.enableCrashlytics = false } + release { signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' buildConfigField "String", "GIT_VERSION_SHA", "\"" + getGitSha() + "\"" } } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + lintOptions { abortOnError false disable 'InvalidPackage' @@ -86,8 +90,8 @@ dependencies { // emojis // circle progress // event bus - compile 'com.android.support:appcompat-v7:25.3.1' - compile 'com.android.support:design:25.3.1' + compile 'com.android.support:appcompat-v7:26.1.0' + compile 'com.android.support:design:26.1.0' compile 'com.jakewharton:butterknife:8.4.0' compile 'com.google.dagger:dagger:2.7' compile 'io.reactivex:rxjava:1.1.6' @@ -96,23 +100,22 @@ dependencies { compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' - compile 'com.squareup.okhttp3:okhttp:3.4.1' + compile 'com.squareup.okhttp3:okhttp:3.7.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'de.hdodenhof:circleimageview:2.1.0' compile 'com.scottyab:secure-preferences-lib:0.1.4' - compile 'com.google.firebase:firebase-messaging:10.2.0' + compile 'com.google.firebase:firebase-messaging:11.4.2' compile 'hani.momanii.supernova_emoji_library:supernova-emoji-library:0.0.2' compile 'com.github.lzyzsd:circleprogress:1.2.1' compile 'org.greenrobot:eventbus:3.0.0' testCompile 'junit:junit:4.12' - apt 'com.jakewharton:butterknife-compiler:8.4.0' - apt 'com.google.dagger:dagger-compiler:2.7' + annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' + annotationProcessor 'com.google.dagger:dagger-compiler:2.7' provided 'javax.annotation:jsr250-api:1.0' } task adp2upload(type: Exec, dependsOn: "build") { - ext { channel = "bewoplaner-chat" slug = "bewoplaner-chat" @@ -121,6 +124,8 @@ task adp2upload(type: Exec, dependsOn: "build") { file = "build/outputs/apk/app-release.apk" notes = "Nightly build for BeWoPlaner Chat" } + commandLine 'upload_build.sh', "-c", "$channel", "-v", "$versionCode", "-p", "android", "-a", "$slug", "-f", "$file", "-i", "$identifier", "-n", "$notes" } + apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml index 1df7259..7fcfe11 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml @@ -85,6 +85,18 @@ android:resource="@xml/provider_paths" /> + + + + - - + + + + diff --git a/BeWoPlanerChat/bewoplaner-chat-android/build.gradle b/BeWoPlanerChat/bewoplaner-chat-android/build.gradle index 09847a2..4414c47 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/build.gradle +++ b/BeWoPlanerChat/bewoplaner-chat-android/build.gradle @@ -5,9 +5,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' - classpath 'me.tatarka:gradle-retrolambda:3.3.0' - classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' + classpath 'com.android.tools.build:gradle:3.0.0' + //classpath 'me.tatarka:gradle-retrolambda:3.3.0' + //classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' classpath 'io.realm:realm-gradle-plugin:2.2.2' // NOTE: Do not place your application dependencies here; they belong @@ -19,6 +19,7 @@ buildscript { allprojects { repositories { jcenter() + google() } } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/gradle/wrapper/gradle-wrapper.properties b/BeWoPlanerChat/bewoplaner-chat-android/gradle/wrapper/gradle-wrapper.properties index a10f227..cb30a16 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/gradle/wrapper/gradle-wrapper.properties +++ b/BeWoPlanerChat/bewoplaner-chat-android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Mar 06 15:25:21 EET 2017 +#Thu Oct 26 10:33:36 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip