diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 3c0449b..99c0c84 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 30aa626..681f41a 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,29 +1,116 @@
 <component name="ProjectCodeStyleConfiguration">
   <code_scheme name="Project" version="173">
-    <Objective-C-extensions>
-      <file>
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
-      </file>
-      <class>
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
-        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
-      </class>
-      <extensions>
-        <pair source="cpp" header="h" fileNamingConvention="NONE" />
-        <pair source="c" header="h" fileNamingConvention="NONE" />
-      </extensions>
-    </Objective-C-extensions>
+    <codeStyleSettings language="XML">
+      <indentOptions>
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      </indentOptions>
+      <arrangement>
+        <rules>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:android</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:id</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>style</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>ANDROID_ATTRIBUTE_ORDER</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+        </rules>
+      </arrangement>
+    </codeStyleSettings>
   </code_scheme>
 </component>
\ No newline at end of file
diff --git a/.idea/copyright/Ess.xml b/.idea/copyright/Ess.xml
deleted file mode 100644
index f9e3423..0000000
--- a/.idea/copyright/Ess.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<component name="CopyrightManager">
-  <copyright>
-    <option name="myName" value="Ess" />
-  </copyright>
-</component>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index b74e093..925c671 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,8 +1,10 @@
 <?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="PLATFORM" />
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="modules">
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 69deca8..7bfef59 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,30 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="NullableNotNullManager">
-    <option name="myDefaultNullable" value="android.support.annotation.Nullable" />
-    <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
-    <option name="myNullables">
-      <value>
-        <list size="4">
-          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
-          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
-          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
-          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
-        </list>
-      </value>
-    </option>
-    <option name="myNotNulls">
-      <value>
-        <list size="4">
-          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
-          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
-          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
-          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
-        </list>
-      </value>
-    </option>
-  </component>
   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
 </project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index f35f827..105403b 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,9 +2,9 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
-      <module fileurl="file://$PROJECT_DIR$/FilePicker.iml" filepath="$PROJECT_DIR$/FilePicker.iml" />
-      <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
-      <module fileurl="file://$PROJECT_DIR$/filepicker/filepicker.iml" filepath="$PROJECT_DIR$/filepicker/filepicker.iml" />
+      <module fileurl="file://$PROJECT_DIR$/FilePicker-AndeoidX.iml" filepath="$PROJECT_DIR$/FilePicker-AndeoidX.iml" group="FilePicker-AndeoidX" />
+      <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" group="FilePicker-AndeoidX/app" />
+      <module fileurl="file://$PROJECT_DIR$/filepicker/filepicker.iml" filepath="$PROJECT_DIR$/filepicker/filepicker.iml" group="FilePicker-AndeoidX/filepicker" />
     </modules>
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+    <mapping directory="" vcs="Git" />
   </component>
 </project>
\ No newline at end of file
diff --git a/README.md b/README.md
index 66816b2..19178b4 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 ### 介绍
 
-# 由于暂时没有更多的精力在此项目上,现将此项目转让给其他人,谁来认领一下,一起把这个库搞下去,加我微信bo_744172447,谢谢!
+# 将原项目升级为AndroidX版本,并适配Andeoid Q
 
 ---
 
@@ -28,7 +28,7 @@
 
 
 ```
-implementation 'cn.imlibo:FilePicker:v0.0.5_alpha'
+implementation project(':filepicker')
 ```
 
 
diff --git a/app/build.gradle b/app/build.gradle
index 3d57c41..3b438ab 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,11 +1,11 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 27
+    compileSdkVersion 29
     defaultConfig {
         applicationId "com.imlibo.essfilepicker"
-        minSdkVersion 17
-        targetSdkVersion 26
+        minSdkVersion 24
+        targetSdkVersion 29
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -25,22 +25,26 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+
+    }
 
 }
 
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
-    implementation 'com.android.support:appcompat-v7:27.1.0'
-    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
-    implementation 'com.android.support:support-v4:27.1.0'
-    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'
-    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
-    implementation 'com.jakewharton:butterknife:8.8.1'
-    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
-    implementation 'com.yanzhenjie:permission:2.0.0-rc2'
+    implementation 'androidx.appcompat:appcompat:1.1.0'
+    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
     testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'com.android.support.test:runner:1.0.1'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+    //debugImplementation group: 'com.squareup.leakcanary', name: 'leakcanary-android', version: '2.4'
+   // releaseImplementation group: 'com.squareup.leakcanary', name: 'leakcanary-android-no-op', version: '1.6.3'
+    implementation group: 'com.jakewharton', name: 'butterknife', version: '10.2.1'
+    annotationProcessor  group: 'com.jakewharton', name: 'butterknife-compiler', version: '10.2.1'
+    implementation 'com.yanzhenjie:permission:2.0.3'
 //    implementation 'cn.imlibo:FilePicker:v0.0.1_alpha'
     implementation project(':filepicker')
 }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1ca931d..0cb835c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,12 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.ess.essfilepicker">
 
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-feature android:name="android.hardware.camera" />
+    <uses-feature android:name="android.hardware.camera.autofocus" />
+
     <application
         android:name=".LApplication"
         android:allowBackup="true"
@@ -9,7 +15,8 @@
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme">
+        android:theme="@style/AppTheme"
+        android:requestLegacyExternalStorage="true">
         <activity android:name=".MainActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/app/src/main/java/com/ess/essfilepicker/FragmentTestActivity.java b/app/src/main/java/com/ess/essfilepicker/FragmentTestActivity.java
index 730753f..a70ea68 100644
--- a/app/src/main/java/com/ess/essfilepicker/FragmentTestActivity.java
+++ b/app/src/main/java/com/ess/essfilepicker/FragmentTestActivity.java
@@ -1,10 +1,11 @@
 package com.ess.essfilepicker;
 
-import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.widget.FrameLayout;
 
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentTransaction;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 
diff --git a/app/src/main/java/com/ess/essfilepicker/LApplication.java b/app/src/main/java/com/ess/essfilepicker/LApplication.java
index 102d724..ea4a601 100644
--- a/app/src/main/java/com/ess/essfilepicker/LApplication.java
+++ b/app/src/main/java/com/ess/essfilepicker/LApplication.java
@@ -10,7 +10,6 @@
 
 import android.app.Application;
 
-import com.squareup.leakcanary.LeakCanary;
 
 /**
  * LApplication
@@ -22,6 +21,5 @@ public class LApplication extends Application{
     @Override
     public void onCreate() {
         super.onCreate();
-        LeakCanary.install(this);
     }
 }
diff --git a/app/src/main/java/com/ess/essfilepicker/MainActivity.java b/app/src/main/java/com/ess/essfilepicker/MainActivity.java
index d8b7f7c..da5ae30 100644
--- a/app/src/main/java/com/ess/essfilepicker/MainActivity.java
+++ b/app/src/main/java/com/ess/essfilepicker/MainActivity.java
@@ -1,12 +1,13 @@
 package com.ess.essfilepicker;
 
 import android.content.Intent;
-import android.support.v4.app.Fragment;
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.ess.filepicker.FilePicker;
 import com.ess.filepicker.SelectCreator;
 import com.ess.filepicker.SelectOptions;
@@ -18,7 +19,7 @@
 import com.ess.filepicker.util.DialogUtil;
 import com.yanzhenjie.permission.Action;
 import com.yanzhenjie.permission.AndPermission;
-import com.yanzhenjie.permission.Permission;
+import com.yanzhenjie.permission.runtime.Permission;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -89,16 +90,26 @@ protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         ButterKnife.bind(this);
-        AndPermission
-                .with(this)
-                .permission(Permission.READ_EXTERNAL_STORAGE,Permission.WRITE_EXTERNAL_STORAGE)
-                .onDenied(new Action() {
+        AndPermission.with(this)
+                .runtime()
+                .permission(
+                        Permission.CAMERA,
+                        Permission.READ_EXTERNAL_STORAGE,
+                        Permission.WRITE_EXTERNAL_STORAGE)
+                .onGranted(new Action() {
                     @Override
-                    public void onAction(List<String> permissions) {
-                        //拒绝权限
-                        DialogUtil.showPermissionDialog(MainActivity.this,Permission.transformText(MainActivity.this, permissions).get(0));
+                    public void onAction(Object data) {
+
                     }
-                })
+                }).onDenied(new Action<List<String>>() {
+            @Override
+            public void onAction(@NonNull List<String> permissions) {
+                if (AndPermission.hasAlwaysDeniedPermission(MainActivity.this, permissions)) {
+                }
+
+
+            }
+        })
                 .start();
 
     }
diff --git a/app/src/main/java/com/ess/essfilepicker/TestFragment.java b/app/src/main/java/com/ess/essfilepicker/TestFragment.java
index e93d3e6..223fb11 100644
--- a/app/src/main/java/com/ess/essfilepicker/TestFragment.java
+++ b/app/src/main/java/com/ess/essfilepicker/TestFragment.java
@@ -3,15 +3,16 @@
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
 import com.ess.filepicker.FilePicker;
 import com.ess.filepicker.model.EssFile;
 import com.ess.filepicker.util.Const;
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index b82fe85..e99ed76 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -6,7 +6,7 @@
     android:orientation="vertical"
     >
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
 
diff --git a/app/src/main/res/layout/fragment_test.xml b/app/src/main/res/layout/fragment_test.xml
index 1ec17bc..0c96e62 100644
--- a/app/src/main/res/layout/fragment_test.xml
+++ b/app/src/main/res/layout/fragment_test.xml
@@ -6,7 +6,7 @@
     android:orientation="vertical"
     >
 
-    <android.support.v7.widget.Toolbar
+    <androidx.appcompat.widget.Toolbar
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
 
diff --git a/build.gradle b/build.gradle
index d15aa2c..bba49d9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,8 +8,8 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.1.1'
-        classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
+        classpath 'com.android.tools.build:gradle:3.6.1'
+        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
         classpath 'com.novoda:bintray-release:0.8.0'
 
         // NOTE: Do not place your application dependencies here; they belong
@@ -37,7 +37,7 @@ ext {
     userOrg = 'libo'
     groupId = 'cn.imlibo'
     uploadName = 'FilePicker'
-    publishVersion = 'v0.0.5_alpha'
+    publishVersion = 'v0.0.5_androidx'
     desc = 'Android文件选择器、图片选择器、MIMEType分类选择器'
     website = 'https://github.com/imLibo/FilePicker'
     licences = ['MIT']
diff --git a/filepicker/build.gradle b/filepicker/build.gradle
index a937f57..e6e7a3a 100644
--- a/filepicker/build.gradle
+++ b/filepicker/build.gradle
@@ -2,11 +2,11 @@ apply plugin: 'com.android.library'
 apply plugin: 'com.novoda.bintray-release'
 
 android {
-    compileSdkVersion 27
+    compileSdkVersion 29
 
     defaultConfig {
-        minSdkVersion 14
-        targetSdkVersion 27
+        minSdkVersion 24
+        targetSdkVersion 29
         versionCode 1
         versionName "1.0"
 
@@ -30,14 +30,13 @@ android {
 
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
-    implementation 'com.android.support:recyclerview-v7:27.1.0'
-    implementation 'com.android.support:appcompat-v7:27.1.0'
-    implementation 'com.android.support:design:27.1.0'
-    implementation 'com.android.support:appcompat-v7:27.1.0'
+    implementation 'androidx.appcompat:appcompat:1.1.0'
+    implementation 'com.google.android.material:material:1.0.0'
+    implementation 'androidx.recyclerview:recyclerview:1.0.0'
     implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.34'
     implementation 'com.android.support.constraint:constraint-layout:1.0.2'
     implementation 'com.github.bumptech.glide:glide:4.6.1'
-    implementation 'com.android.support:support-v4:27.1.0'
+//    implementation 'com.android.support:support-v4:27.1.0'
     implementation 'org.greenrobot:eventbus:3.1.1'
     implementation 'top.zibin:Luban:1.1.3'
 }
diff --git a/filepicker/src/main/java/com/ess/filepicker/BaseFileFragment.java b/filepicker/src/main/java/com/ess/filepicker/BaseFileFragment.java
index db9d5ec..d1041ad 100644
--- a/filepicker/src/main/java/com/ess/filepicker/BaseFileFragment.java
+++ b/filepicker/src/main/java/com/ess/filepicker/BaseFileFragment.java
@@ -4,12 +4,14 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.os.Message;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
 import java.lang.reflect.Field;
 
 /**
@@ -17,7 +19,7 @@
  * Created by 李波 on 2018/2/23.
  */
 
-public abstract class BaseFileFragment extends Fragment{
+public abstract class BaseFileFragment extends Fragment {
 
     protected Activity mActivity = null;
     protected Bundle bundle = null;
@@ -138,11 +140,9 @@ public void onDetach() {
         try {
             Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
             childFragmentManager.setAccessible(true);
-            childFragmentManager.set(this, null);
+            //childFragmentManager.set(this, null);
         } catch (NoSuchFieldException e) {
             throw new RuntimeException(e);
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException(e);
         }
     }
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/FilePicker.java b/filepicker/src/main/java/com/ess/filepicker/FilePicker.java
index e742c36..4e2d7aa 100644
--- a/filepicker/src/main/java/com/ess/filepicker/FilePicker.java
+++ b/filepicker/src/main/java/com/ess/filepicker/FilePicker.java
@@ -1,7 +1,8 @@
 package com.ess.filepicker;
 
 import android.app.Activity;
-import android.support.v4.app.Fragment;
+
+import androidx.fragment.app.Fragment;
 
 import java.lang.ref.WeakReference;
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/SelectCreator.java b/filepicker/src/main/java/com/ess/filepicker/SelectCreator.java
index 0530ccf..58f2a7b 100644
--- a/filepicker/src/main/java/com/ess/filepicker/SelectCreator.java
+++ b/filepicker/src/main/java/com/ess/filepicker/SelectCreator.java
@@ -3,8 +3,9 @@
 import android.app.Activity;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
-import android.support.annotation.StyleRes;
-import android.support.v4.app.Fragment;
+
+import androidx.annotation.StyleRes;
+import androidx.fragment.app.Fragment;
 
 import com.ess.filepicker.activity.SelectFileByBrowserActivity;
 import com.ess.filepicker.activity.SelectFileByScanActivity;
diff --git a/filepicker/src/main/java/com/ess/filepicker/activity/FileTypeListFragment.java b/filepicker/src/main/java/com/ess/filepicker/activity/FileTypeListFragment.java
index cbb8971..85e9eb2 100644
--- a/filepicker/src/main/java/com/ess/filepicker/activity/FileTypeListFragment.java
+++ b/filepicker/src/main/java/com/ess/filepicker/activity/FileTypeListFragment.java
@@ -2,12 +2,12 @@
 
 
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 import android.view.View;
 
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.ess.filepicker.BaseFileFragment;
 import com.ess.filepicker.R;
@@ -18,6 +18,7 @@
 import com.ess.filepicker.model.FileScanActEvent;
 import com.ess.filepicker.model.FileScanFragEvent;
 import com.ess.filepicker.model.FileScanSortChangedEvent;
+import com.google.android.material.snackbar.Snackbar;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
diff --git a/filepicker/src/main/java/com/ess/filepicker/activity/PicturesViewActivity.java b/filepicker/src/main/java/com/ess/filepicker/activity/PicturesViewActivity.java
index 8a9910d..cd1ed65 100644
--- a/filepicker/src/main/java/com/ess/filepicker/activity/PicturesViewActivity.java
+++ b/filepicker/src/main/java/com/ess/filepicker/activity/PicturesViewActivity.java
@@ -1,8 +1,9 @@
 package com.ess.filepicker.activity;
 
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.ess.filepicker.R;
 import com.ess.filepicker.model.EssFile;
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByBrowserActivity.java b/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByBrowserActivity.java
index 4a8a16f..3ca476d 100644
--- a/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByBrowserActivity.java
+++ b/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByBrowserActivity.java
@@ -2,14 +2,9 @@
 
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Environment;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -19,6 +14,12 @@
 import android.widget.ImageView;
 import android.widget.PopupWindow;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.ess.filepicker.R;
 import com.ess.filepicker.SelectOptions;
@@ -33,6 +34,7 @@
 import com.ess.filepicker.task.EssFileListTask;
 import com.ess.filepicker.util.Const;
 import com.ess.filepicker.util.FileUtils;
+import com.google.android.material.snackbar.Snackbar;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -78,7 +80,9 @@ protected void onCreate(Bundle savedInstanceState) {
         setContentView(R.layout.activity_select_file);
         // TODO: 2019/3/12 暂时移除
 //        EventBus.getDefault().register(this);
-
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
+           // mCurFolder=getExternalFilesDir(Environment.getExternalStorageDirectory().getAbsolutePath())+ File.separator;
+        }
         mSdCardList = FileUtils.getAllSdPaths(this);
         if (!mSdCardList.isEmpty()) {
             mCurFolder = mSdCardList.get(0) + File.separator;
diff --git a/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByScanActivity.java b/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByScanActivity.java
index e001cb0..dcb09d8 100644
--- a/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByScanActivity.java
+++ b/filepicker/src/main/java/com/ess/filepicker/activity/SelectFileByScanActivity.java
@@ -2,17 +2,17 @@
 
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.support.design.widget.TabLayout;
-import android.support.v4.app.Fragment;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+
 import com.ess.filepicker.R;
 import com.ess.filepicker.SelectOptions;
 import com.ess.filepicker.adapter.FragmentPagerAdapter;
@@ -23,6 +23,7 @@
 import com.ess.filepicker.model.FileScanSortChangedEvent;
 import com.ess.filepicker.util.Const;
 import com.ess.filepicker.util.FileUtils;
+import com.google.android.material.tabs.TabLayout;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
diff --git a/filepicker/src/main/java/com/ess/filepicker/activity/SelectPictureActivity.java b/filepicker/src/main/java/com/ess/filepicker/activity/SelectPictureActivity.java
index 9b775c3..78e04ae 100644
--- a/filepicker/src/main/java/com/ess/filepicker/activity/SelectPictureActivity.java
+++ b/filepicker/src/main/java/com/ess/filepicker/activity/SelectPictureActivity.java
@@ -5,13 +5,7 @@
 import android.database.Cursor;
 import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -19,6 +13,12 @@
 import android.widget.AdapterView;
 import android.widget.TextView;
 
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.ess.filepicker.R;
 import com.ess.filepicker.SelectOptions;
@@ -32,6 +32,7 @@
 import com.ess.filepicker.util.UiUtils;
 import com.ess.filepicker.widget.MediaItemDecoration;
 import com.ess.filepicker.widget.ToolbarSpinner;
+import com.google.android.material.snackbar.Snackbar;
 
 import java.io.File;
 import java.util.ArrayList;
diff --git a/filepicker/src/main/java/com/ess/filepicker/adapter/BreadAdapter.java b/filepicker/src/main/java/com/ess/filepicker/adapter/BreadAdapter.java
index d5afafb..5148d3d 100644
--- a/filepicker/src/main/java/com/ess/filepicker/adapter/BreadAdapter.java
+++ b/filepicker/src/main/java/com/ess/filepicker/adapter/BreadAdapter.java
@@ -1,7 +1,6 @@
 package com.ess.filepicker.adapter;
 
-
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
diff --git a/filepicker/src/main/java/com/ess/filepicker/adapter/EssMediaAdapter.java b/filepicker/src/main/java/com/ess/filepicker/adapter/EssMediaAdapter.java
index 4b86721..6eb2298 100644
--- a/filepicker/src/main/java/com/ess/filepicker/adapter/EssMediaAdapter.java
+++ b/filepicker/src/main/java/com/ess/filepicker/adapter/EssMediaAdapter.java
@@ -1,11 +1,12 @@
 package com.ess.filepicker.adapter;
 
-import android.support.annotation.Nullable;
-import android.support.v7.widget.AppCompatCheckBox;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatCheckBox;
+
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.chad.library.adapter.base.BaseQuickAdapter;
diff --git a/filepicker/src/main/java/com/ess/filepicker/adapter/FileListAdapter.java b/filepicker/src/main/java/com/ess/filepicker/adapter/FileListAdapter.java
index ced360b..23fa347 100644
--- a/filepicker/src/main/java/com/ess/filepicker/adapter/FileListAdapter.java
+++ b/filepicker/src/main/java/com/ess/filepicker/adapter/FileListAdapter.java
@@ -1,9 +1,10 @@
 package com.ess.filepicker.adapter;
 
-import android.support.annotation.Nullable;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.chad.library.adapter.base.BaseQuickAdapter;
diff --git a/filepicker/src/main/java/com/ess/filepicker/adapter/FragmentPagerAdapter.java b/filepicker/src/main/java/com/ess/filepicker/adapter/FragmentPagerAdapter.java
index ee1804d..54835a6 100644
--- a/filepicker/src/main/java/com/ess/filepicker/adapter/FragmentPagerAdapter.java
+++ b/filepicker/src/main/java/com/ess/filepicker/adapter/FragmentPagerAdapter.java
@@ -1,11 +1,12 @@
 package com.ess.filepicker.adapter;
 
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentStatePagerAdapter;
-import android.support.v4.app.FragmentTransaction;
 import android.view.ViewGroup;
 
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentStatePagerAdapter;
+import androidx.fragment.app.FragmentTransaction;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/adapter/SelectSdcardAdapter.java b/filepicker/src/main/java/com/ess/filepicker/adapter/SelectSdcardAdapter.java
index dd41ae9..f7c36cc 100644
--- a/filepicker/src/main/java/com/ess/filepicker/adapter/SelectSdcardAdapter.java
+++ b/filepicker/src/main/java/com/ess/filepicker/adapter/SelectSdcardAdapter.java
@@ -1,6 +1,7 @@
 package com.ess.filepicker.adapter;
 
-import android.support.annotation.Nullable;
+
+import androidx.annotation.Nullable;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
diff --git a/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumCollection.java b/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumCollection.java
index 5fb2f05..6e93efb 100644
--- a/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumCollection.java
+++ b/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumCollection.java
@@ -19,10 +19,11 @@
 import android.content.Context;
 import android.database.Cursor;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.Loader;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
 
 import java.lang.ref.WeakReference;
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumLoader.java b/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumLoader.java
index f7126d9..b83168f 100644
--- a/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumLoader.java
+++ b/filepicker/src/main/java/com/ess/filepicker/loader/EssAlbumLoader.java
@@ -5,8 +5,11 @@
 import android.database.MatrixCursor;
 import android.database.MergeCursor;
 import android.net.Uri;
+import android.os.Build;
 import android.provider.MediaStore;
-import android.support.v4.content.CursorLoader;
+import android.util.SparseArray;
+
+import androidx.loader.content.CursorLoader;
 
 import com.ess.filepicker.SelectOptions;
 import com.ess.filepicker.model.Album;
@@ -20,18 +23,26 @@ public class EssAlbumLoader extends CursorLoader {
 
     public static final String COLUMN_COUNT = "count";
     private static final Uri QUERY_URI = MediaStore.Files.getContentUri("external");
+    private static final String COLUMN_BUCKET_ID = "bucket_id";
+    private static final String COLUMN_BUCKET_NAME = "bucket_display_name";
     private static final String[] COLUMNS = {
             MediaStore.Files.FileColumns._ID,
-            "bucket_id",
-            "bucket_display_name",
+            COLUMN_BUCKET_ID,
+            COLUMN_BUCKET_NAME,
             MediaStore.MediaColumns.DATA,
             COLUMN_COUNT};
     private static final String[] PROJECTION = {
             MediaStore.Files.FileColumns._ID,
-            "bucket_id",
-            "bucket_display_name",
+            COLUMN_BUCKET_ID,
+            COLUMN_BUCKET_NAME,
             MediaStore.MediaColumns.DATA,
             "COUNT(*) AS " + COLUMN_COUNT};
+    private static final String[] PROJECTION_29 = {
+            MediaStore.Files.FileColumns._ID,
+            COLUMN_BUCKET_ID,
+            COLUMN_BUCKET_NAME,
+            MediaStore.MediaColumns.DATA};
+
 
     // === params for showSingleMediaType: false ===
     private static final String SELECTION =
@@ -40,6 +51,11 @@ public class EssAlbumLoader extends CursorLoader {
                     + MediaStore.Files.FileColumns.MEDIA_TYPE + "=?)"
                     + " AND " + MediaStore.MediaColumns.SIZE + ">0"
                     + ") GROUP BY (bucket_id";
+    private static final String SELECTION_29 =
+            "(" + MediaStore.Files.FileColumns.MEDIA_TYPE + "=?"
+                    + " OR "
+                    + MediaStore.Files.FileColumns.MEDIA_TYPE + "=?)"
+                    + " AND " + MediaStore.MediaColumns.SIZE + ">0";
     private static final String[] SELECTION_ARGS = {
             String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE),
             String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO),
@@ -51,6 +67,10 @@ public class EssAlbumLoader extends CursorLoader {
             MediaStore.Files.FileColumns.MEDIA_TYPE + "=?"
                     + " AND " + MediaStore.MediaColumns.SIZE + ">0"
                     + ") GROUP BY (bucket_id";
+    private static final String SELECTION_FOR_SINGLE_MEDIA_TYPE_29 =
+            MediaStore.Files.FileColumns.MEDIA_TYPE + "=?"
+                    + " AND " + MediaStore.MediaColumns.SIZE + ">0";
+
 
     private static String[] getSelectionArgsForSingleMediaType(int mediaType) {
         return new String[]{String.valueOf(mediaType)};
@@ -62,21 +82,40 @@ private static String[] getSelectionArgsForSingleMediaType(int mediaType) {
     public EssAlbumLoader(Context context, String selection, String[] selectionArgs) {
         super(context, QUERY_URI, PROJECTION, selection, selectionArgs, BUCKET_ORDER_BY);
     }
+    private EssAlbumLoader(Context context, String[] projection, String selection, String[] selectionArgs) {
+        super(context, QUERY_URI, projection, selection, selectionArgs, BUCKET_ORDER_BY);
+    }
 
     public static CursorLoader newInstance(Context context) {
         String selection;
         String[] selectionArgs;
-        if (SelectOptions.getInstance().onlyShowImages) {
-            selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
-            selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE);
-        } else if (SelectOptions.getInstance().onlyShowVideos) {
-            selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
-            selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO);
-        } else {
-            selection = SELECTION;
-            selectionArgs = SELECTION_ARGS;
+        String[] projection;
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+            projection = PROJECTION_29;
+            if (SelectOptions.getInstance().onlyShowImages) {
+                selection = SELECTION_FOR_SINGLE_MEDIA_TYPE_29;
+                selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE);
+            } else if (SelectOptions.getInstance().onlyShowVideos) {
+                selection = SELECTION_FOR_SINGLE_MEDIA_TYPE_29;
+                selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO);
+            } else {
+                selection = SELECTION_29;
+                selectionArgs = SELECTION_ARGS;
+            }
+        }else {
+            projection = PROJECTION;
+            if (SelectOptions.getInstance().onlyShowImages) {
+                selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
+                selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE);
+            } else if (SelectOptions.getInstance().onlyShowVideos) {
+                selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
+                selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO);
+            } else {
+                selection = SELECTION;
+                selectionArgs = SELECTION_ARGS;
+            }
         }
-        return new EssAlbumLoader(context, selection, selectionArgs);
+        return new EssAlbumLoader(context, projection,selection, selectionArgs);
     }
 
     @Override
@@ -85,20 +124,51 @@ public Cursor loadInBackground() {
         MatrixCursor allAlbum = new MatrixCursor(COLUMNS);
         int totalCount = 0;
         String allAlbumCoverPath = "";
-        if (albums != null) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+            if (albums == null) {
+                return allAlbum;
+            }
+            SparseArray<Album> albumList = new SparseArray<>();
             while (albums.moveToNext()) {
-                totalCount += albums.getInt(albums.getColumnIndex(COLUMN_COUNT));
+                int bucketId = albums.getInt(albums.getColumnIndex(COLUMN_BUCKET_ID));
+                String bucketName = albums.getString(albums.getColumnIndex(COLUMN_BUCKET_NAME));
+                Album album = albumList.get(bucketId);
+                if (album == null) {
+                    album = new Album(String.valueOf(bucketId), allAlbumCoverPath, bucketName, 0);
+                    albumList.append(bucketId, album);
+                }
+                album.addCaptureCount();
+            }
+            for (int i = 0; i < albumList.size(); i++) {
+                totalCount += albumList.valueAt(i).getCount();
             }
             if (albums.moveToFirst()) {
                 allAlbumCoverPath = albums.getString(albums.getColumnIndex(MediaStore.MediaColumns.DATA));
+                allAlbum.addRow(new String[]{Album.ALBUM_ID_ALL, Album.ALBUM_ID_ALL, Album.ALBUM_NAME_ALL, allAlbumCoverPath,
+                        String.valueOf(totalCount)});
             }
-        }
-        allAlbum.addRow(new String[]{Album.ALBUM_ID_ALL, Album.ALBUM_ID_ALL, Album.ALBUM_NAME_ALL, allAlbumCoverPath,
-                String.valueOf(totalCount)});
-
+            for (int i = 0; i < albumList.size(); i++) {
+                Album album = albumList.valueAt(i);
+                totalCount += album.getCount();
+                allAlbum.addRow(new String[]{album.getId(), album.getId(), album.getDisplayName(getContext()),
+                        album.getCoverPath(), String.valueOf(album.getCount())});
+            }
+            return allAlbum;
+        }else {
+            if (albums != null) {
+                while (albums.moveToNext()) {
+                    totalCount += albums.getInt(albums.getColumnIndex(COLUMN_COUNT));
+                }
+                if (albums.moveToFirst()) {
+                    allAlbumCoverPath = albums.getString(albums.getColumnIndex(MediaStore.MediaColumns.DATA));
+                }
+            }
+            allAlbum.addRow(new String[]{Album.ALBUM_ID_ALL, Album.ALBUM_ID_ALL, Album.ALBUM_NAME_ALL, allAlbumCoverPath,
+                    String.valueOf(totalCount)});
 
 
-        return new MergeCursor(new Cursor[]{allAlbum, albums});
+            return new MergeCursor(new Cursor[]{allAlbum, albums});
+        }
     }
 
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaCollection.java b/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaCollection.java
index 405dfd0..c576a57 100644
--- a/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaCollection.java
+++ b/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaCollection.java
@@ -4,11 +4,12 @@
 import android.database.Cursor;
 import android.os.Bundle;
 import android.provider.MediaStore;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.Loader;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
 
 import com.ess.filepicker.model.Album;
 import com.ess.filepicker.model.EssFile;
diff --git a/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaLoader.java b/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaLoader.java
index fd4faf9..38727d0 100644
--- a/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaLoader.java
+++ b/filepicker/src/main/java/com/ess/filepicker/loader/EssMediaLoader.java
@@ -6,7 +6,8 @@
 import android.database.MergeCursor;
 import android.net.Uri;
 import android.provider.MediaStore;
-import android.support.v4.content.CursorLoader;
+
+import androidx.loader.content.CursorLoader;
 
 import com.ess.filepicker.SelectOptions;
 import com.ess.filepicker.model.Album;
diff --git a/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeCollection.java b/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeCollection.java
index 1911253..53eb5ab 100644
--- a/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeCollection.java
+++ b/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeCollection.java
@@ -19,10 +19,11 @@
 import android.content.Context;
 import android.database.Cursor;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.Loader;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
 
 import com.ess.filepicker.model.EssFile;
 
diff --git a/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeLoader.java b/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeLoader.java
index 62e9fd4..ab5f1a4 100644
--- a/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeLoader.java
+++ b/filepicker/src/main/java/com/ess/filepicker/loader/EssMimeTypeLoader.java
@@ -4,9 +4,10 @@
 import android.database.Cursor;
 import android.net.Uri;
 import android.provider.MediaStore;
-import android.support.v4.content.CursorLoader;
 import android.webkit.MimeTypeMap;
 
+import androidx.loader.content.CursorLoader;
+
 import com.ess.filepicker.model.EssFile;
 import com.ess.filepicker.util.Const;
 import com.ess.filepicker.util.FileUtils;
diff --git a/filepicker/src/main/java/com/ess/filepicker/model/Album.java b/filepicker/src/main/java/com/ess/filepicker/model/Album.java
index 88ef69d..8e7ecaf 100644
--- a/filepicker/src/main/java/com/ess/filepicker/model/Album.java
+++ b/filepicker/src/main/java/com/ess/filepicker/model/Album.java
@@ -21,7 +21,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.provider.MediaStore;
-import android.support.annotation.Nullable;
+
+import androidx.annotation.Nullable;
 
 import com.ess.filepicker.loader.EssAlbumLoader;
 
@@ -46,7 +47,7 @@ public Album[] newArray(int size) {
     private final String mDisplayName;
     private long mCount;
 
-    Album(String id, String coverPath, String albumName, long count) {
+    public Album(String id, String coverPath, String albumName, long count) {
         mId = id;
         mCoverPath = coverPath;
         mDisplayName = albumName;
diff --git a/filepicker/src/main/java/com/ess/filepicker/model/EssFileProvider.java b/filepicker/src/main/java/com/ess/filepicker/model/EssFileProvider.java
index d119131..42c661c 100644
--- a/filepicker/src/main/java/com/ess/filepicker/model/EssFileProvider.java
+++ b/filepicker/src/main/java/com/ess/filepicker/model/EssFileProvider.java
@@ -1,6 +1,7 @@
 package com.ess.filepicker.model;
 
-import android.support.v4.content.FileProvider;
+
+import androidx.core.content.FileProvider;
 
 /**
  * EssFileProvider
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/ConvertUtils.java b/filepicker/src/main/java/com/ess/filepicker/util/ConvertUtils.java
index 2a69dc7..526d8b8 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/ConvertUtils.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/ConvertUtils.java
@@ -19,13 +19,14 @@
 import android.os.Environment;
 import android.provider.DocumentsContract;
 import android.provider.MediaStore;
-import android.support.annotation.ColorInt;
-import android.support.annotation.FloatRange;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.ListView;
 import android.widget.ScrollView;
 
+import androidx.annotation.ColorInt;
+import androidx.annotation.FloatRange;
+
 import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -458,7 +459,7 @@ public static Bitmap toBitmap(View view) {
         Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
         Canvas canvas = new Canvas(bitmap);
         canvas.drawBitmap(cacheBitmap, 0, 0, null);
-        canvas.save(Canvas.ALL_SAVE_FLAG);
+        canvas.save();
         canvas.restore();
         if (!bitmap.isRecycled()) {
             LogUtils.verbose("recycle bitmap: " + bitmap.toString());
@@ -565,7 +566,7 @@ public static int toDarkenColor(@ColorInt int color) {
         return toDarkenColor(color, 0.8f);
     }
 
-    public static int toDarkenColor(@ColorInt int color, @FloatRange(from = 0f, to = 1f) float value) {
+    public static int toDarkenColor(@ColorInt int color, float value) {
         float[] hsv = new float[3];
         Color.colorToHSV(color, hsv);
         hsv[2] *= value;//HSV指Hue、Saturation、Value,即色调、饱和度和亮度,此处表示修改亮度
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/DateUtils.java b/filepicker/src/main/java/com/ess/filepicker/util/DateUtils.java
index 8ae59c9..fd3defb 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/DateUtils.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/DateUtils.java
@@ -1,7 +1,7 @@
 package com.ess.filepicker.util;
 
-import android.support.annotation.IntDef;
-import android.support.annotation.NonNull;
+import androidx.annotation.IntDef;
+import androidx.annotation.NonNull;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/DialogUtil.java b/filepicker/src/main/java/com/ess/filepicker/util/DialogUtil.java
index f2844c5..efe4928 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/DialogUtil.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/DialogUtil.java
@@ -4,7 +4,8 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.provider.Settings;
-import android.support.v7.app.AlertDialog;
+
+import androidx.appcompat.app.AlertDialog;
 
 /**
  * DialogUtil
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/FileUtils.java b/filepicker/src/main/java/com/ess/filepicker/util/FileUtils.java
index be254fc..645115d 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/FileUtils.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/FileUtils.java
@@ -3,10 +3,11 @@
 import android.content.Context;
 import android.os.Environment;
 import android.os.storage.StorageManager;
-import android.support.annotation.IntDef;
 import android.text.TextUtils;
 import android.webkit.MimeTypeMap;
 
+import androidx.annotation.IntDef;
+
 import com.ess.filepicker.model.BreadModel;
 
 import java.io.BufferedInputStream;
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/MediaStoreCompat.java b/filepicker/src/main/java/com/ess/filepicker/util/MediaStoreCompat.java
index 6db25fa..db64194 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/MediaStoreCompat.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/MediaStoreCompat.java
@@ -24,11 +24,12 @@
 import android.os.Build;
 import android.os.Environment;
 import android.provider.MediaStore;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.FileProvider;
-import android.support.v4.os.EnvironmentCompat;
 
 
+import androidx.core.content.FileProvider;
+import androidx.core.os.EnvironmentCompat;
+import androidx.fragment.app.Fragment;
+
 import com.ess.filepicker.model.CaptureStrategy;
 
 import java.io.File;
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/MimeType.java b/filepicker/src/main/java/com/ess/filepicker/util/MimeType.java
index 822dccd..ac549ed 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/MimeType.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/MimeType.java
@@ -18,11 +18,12 @@
 
 import android.content.ContentResolver;
 import android.net.Uri;
-import android.support.v4.util.ArraySet;
 import android.text.TextUtils;
 import android.webkit.MimeTypeMap;
 
 
+import androidx.collection.ArraySet;
+
 import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.Locale;
diff --git a/filepicker/src/main/java/com/ess/filepicker/util/UiUtils.java b/filepicker/src/main/java/com/ess/filepicker/util/UiUtils.java
index 7ea712e..7e7bbb3 100644
--- a/filepicker/src/main/java/com/ess/filepicker/util/UiUtils.java
+++ b/filepicker/src/main/java/com/ess/filepicker/util/UiUtils.java
@@ -1,11 +1,12 @@
 package com.ess.filepicker.util;
 
 import android.content.Context;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.util.DisplayMetrics;
 import android.util.TypedValue;
 
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 /**
  * UiUtils
  * Created by 李波 on 2018/2/8.
@@ -24,7 +25,7 @@ public static int dpToPx(Context c, float dipValue) {
         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
     }
 
-    public static int getImageResize(Context context,RecyclerView recyclerView) {
+    public static int getImageResize(Context context, RecyclerView recyclerView) {
         int mImageResize;
         RecyclerView.LayoutManager lm = recyclerView.getLayoutManager();
         int spanCount = ((GridLayoutManager) lm).getSpanCount();
diff --git a/filepicker/src/main/java/com/ess/filepicker/widget/MediaItemDecoration.java b/filepicker/src/main/java/com/ess/filepicker/widget/MediaItemDecoration.java
index f772fbb..6fc7af5 100644
--- a/filepicker/src/main/java/com/ess/filepicker/widget/MediaItemDecoration.java
+++ b/filepicker/src/main/java/com/ess/filepicker/widget/MediaItemDecoration.java
@@ -1,11 +1,12 @@
 package com.ess.filepicker.widget;
 
 import android.graphics.Rect;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.StaggeredGridLayoutManager;
 import android.view.View;
 
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.StaggeredGridLayoutManager;
+
 import com.ess.filepicker.util.UiUtils;
 
 /**
diff --git a/filepicker/src/main/java/com/ess/filepicker/widget/ToolbarSpinner.java b/filepicker/src/main/java/com/ess/filepicker/widget/ToolbarSpinner.java
index da303a4..eb51ec0 100644
--- a/filepicker/src/main/java/com/ess/filepicker/widget/ToolbarSpinner.java
+++ b/filepicker/src/main/java/com/ess/filepicker/widget/ToolbarSpinner.java
@@ -20,13 +20,14 @@
 import android.database.Cursor;
 import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.ListPopupWindow;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.CursorAdapter;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.ListPopupWindow;
+
 import com.ess.filepicker.R;
 import com.ess.filepicker.model.Album;
 import com.ess.filepicker.util.Platform;
diff --git a/filepicker/src/main/res/layout-v21/activity_select_file.xml b/filepicker/src/main/res/layout-v21/activity_select_file.xml
index 5f7b97e..b7b9dc6 100644
--- a/filepicker/src/main/res/layout-v21/activity_select_file.xml
+++ b/filepicker/src/main/res/layout-v21/activity_select_file.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -7,13 +7,14 @@
     android:id="@+id/coordinator_layout"
     tools:context=".activity.SelectFileByBrowserActivity">
 
-    <android.support.design.widget.AppBarLayout
+    <com.google.android.material.appbar.AppBarLayout
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
         android:theme="@style/AppTheme.AppBarOverlay"
-        android:background="?attr/colorPrimary">
+        android:background="?attr/colorPrimary"
+        tools:ignore="MissingConstraints">
 
-        <android.support.v7.widget.Toolbar
+        <androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
@@ -36,7 +37,7 @@
                 android:src="@drawable/ic_chevron_right_white_24dp"
                 android:background="?android:attr/selectableItemBackgroundBorderless"
                 />
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/breadcrumbs_view"
                 android:layout_width="match_parent"
                 android:paddingRight="10dp"
@@ -45,14 +46,17 @@
         </LinearLayout>
 
 
-    </android.support.design.widget.AppBarLayout>
+    </com.google.android.material.appbar.AppBarLayout>
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/rcv_file_list"
         android:layout_width="match_parent"
         android:scrollbars="vertical"
         android:layout_height="match_parent"
+        android:layout_marginTop="?attr/actionBarSize"
+        android:paddingTop="36dp"
+        android:background="#fff"
         app:layout_behavior="@string/appbar_scrolling_view_behavior"
         />
 
-</android.support.design.widget.CoordinatorLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/filepicker/src/main/res/layout/activity_pictures_detail.xml b/filepicker/src/main/res/layout/activity_pictures_detail.xml
index fb16212..2778b44 100644
--- a/filepicker/src/main/res/layout/activity_pictures_detail.xml
+++ b/filepicker/src/main/res/layout/activity_pictures_detail.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context="com.ess.filepicker.activity.PicturesViewActivity">
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/filepicker/src/main/res/layout/activity_select_file.xml b/filepicker/src/main/res/layout/activity_select_file.xml
index a712aea..76c1e7f 100644
--- a/filepicker/src/main/res/layout/activity_select_file.xml
+++ b/filepicker/src/main/res/layout/activity_select_file.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -7,13 +7,14 @@
     android:id="@+id/coordinator_layout"
     tools:context=".activity.SelectFileByBrowserActivity">
 
-    <android.support.design.widget.AppBarLayout
+    <com.google.android.material.appbar.AppBarLayout
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
         android:theme="@style/AppTheme.AppBarOverlay"
-        android:background="?attr/colorPrimary">
+        android:background="?attr/colorPrimary"
+        tools:ignore="MissingConstraints">
 
-        <android.support.v7.widget.Toolbar
+        <androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
@@ -36,7 +37,7 @@
                 android:src="@drawable/ic_chevron_right_white_24dp"
                 android:background="?android:attr/selectableItemBackground"
                 />
-            <android.support.v7.widget.RecyclerView
+            <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/breadcrumbs_view"
                 android:layout_width="match_parent"
                 android:paddingRight="10dp"
@@ -45,14 +46,17 @@
         </LinearLayout>
 
 
-    </android.support.design.widget.AppBarLayout>
+    </com.google.android.material.appbar.AppBarLayout>
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/rcv_file_list"
         android:layout_width="match_parent"
         android:scrollbars="vertical"
         android:layout_height="match_parent"
+        android:layout_marginTop="?attr/actionBarSize"
+        android:paddingTop="36dp"
+        android:background="#fff"
         app:layout_behavior="@string/appbar_scrolling_view_behavior"
         />
 
-</android.support.design.widget.CoordinatorLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/filepicker/src/main/res/layout/activity_select_file_by_scan.xml b/filepicker/src/main/res/layout/activity_select_file_by_scan.xml
index 1ff32d6..7a89fde 100644
--- a/filepicker/src/main/res/layout/activity_select_file_by_scan.xml
+++ b/filepicker/src/main/res/layout/activity_select_file_by_scan.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -7,13 +7,14 @@
     android:id="@+id/coordinator_layout"
     tools:context=".activity.SelectFileByBrowserActivity">
 
-    <android.support.design.widget.AppBarLayout
+    <com.google.android.material.appbar.AppBarLayout
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
         android:theme="@style/AppTheme.AppBarOverlay"
-        android:background="?attr/colorPrimary">
+        android:background="?attr/colorPrimary"
+        tools:ignore="MissingConstraints">
 
-        <android.support.v7.widget.Toolbar
+        <androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
@@ -21,21 +22,24 @@
             />
         <!--app:layout_scrollFlags="scroll|enterAlways"-->
 
-        <android.support.design.widget.TabLayout
+        <com.google.android.material.tabs.TabLayout
             android:id="@+id/tabl_select_file_scan"
             android:layout_width="match_parent"
             android:layout_height="36dp">
 
-        </android.support.design.widget.TabLayout>
+        </com.google.android.material.tabs.TabLayout>
 
 
-    </android.support.design.widget.AppBarLayout>
+    </com.google.android.material.appbar.AppBarLayout>
 
-    <android.support.v4.view.ViewPager
+    <androidx.viewpager.widget.ViewPager
         android:id="@+id/vp_select_file_scan"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_marginTop="?attr/actionBarSize"
+        android:paddingTop="36dp"
+        android:background="#fff"
         app:layout_behavior="@string/appbar_scrolling_view_behavior"
         />
 
-</android.support.design.widget.CoordinatorLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/filepicker/src/main/res/layout/activity_select_picture.xml b/filepicker/src/main/res/layout/activity_select_picture.xml
index c877989..dba6013 100644
--- a/filepicker/src/main/res/layout/activity_select_picture.xml
+++ b/filepicker/src/main/res/layout/activity_select_picture.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -7,13 +7,13 @@
     android:id="@+id/coordinator_layout"
     tools:context=".activity.SelectFileByBrowserActivity">
 
-    <android.support.design.widget.AppBarLayout
+    <com.google.android.material.appbar.AppBarLayout
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
         android:theme="@style/AppTheme.AppBarOverlay"
         android:background="?attr/colorPrimary">
 
-        <android.support.v7.widget.Toolbar
+        <androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
@@ -29,16 +29,17 @@
                 android:text="全部"
                 android:textColor="?attr/album.element.color"
                 android:textSize="20sp"/>
-        </android.support.v7.widget.Toolbar>
+        </androidx.appcompat.widget.Toolbar>
 
-    </android.support.design.widget.AppBarLayout>
+    </com.google.android.material.appbar.AppBarLayout>
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/rcv_file_picture_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_marginTop="?attr/actionBarSize"
         app:layout_behavior="@string/appbar_scrolling_view_behavior"
         />
 
 
-</android.support.design.widget.CoordinatorLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/filepicker/src/main/res/layout/empty_file_list.xml b/filepicker/src/main/res/layout/empty_file_list.xml
index 2895a92..5b63a4b 100644
--- a/filepicker/src/main/res/layout/empty_file_list.xml
+++ b/filepicker/src/main/res/layout/empty_file_list.xml
@@ -3,6 +3,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="#fff"
     >
 
     <TextView
diff --git a/filepicker/src/main/res/layout/ess_media_item.xml b/filepicker/src/main/res/layout/ess_media_item.xml
index 5f1f5d4..08ee43d 100644
--- a/filepicker/src/main/res/layout/ess_media_item.xml
+++ b/filepicker/src/main/res/layout/ess_media_item.xml
@@ -30,7 +30,7 @@
             android:scaleType="centerCrop"
             />
 
-        <android.support.v7.widget.AppCompatCheckBox
+        <androidx.appcompat.widget.AppCompatCheckBox
             android:id="@+id/check_view"
             android:theme="@style/checkbox"
             android:layout_width="wrap_content"
diff --git a/filepicker/src/main/res/layout/fragment_file_type_list.xml b/filepicker/src/main/res/layout/fragment_file_type_list.xml
index 849e87e..28aa0d3 100644
--- a/filepicker/src/main/res/layout/fragment_file_type_list.xml
+++ b/filepicker/src/main/res/layout/fragment_file_type_list.xml
@@ -4,7 +4,7 @@
     android:layout_height="match_parent"
     tools:context="com.ess.filepicker.activity.FileTypeListFragment">
 
-    <android.support.v7.widget.RecyclerView
+    <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/rcv_file_list_scan"
         android:scrollbars="vertical"
         android:layout_width="match_parent"
diff --git a/filepicker/src/main/res/layout/item_file_list.xml b/filepicker/src/main/res/layout/item_file_list.xml
index 72a12d9..754d2cb 100644
--- a/filepicker/src/main/res/layout/item_file_list.xml
+++ b/filepicker/src/main/res/layout/item_file_list.xml
@@ -54,7 +54,7 @@
                 android:textSize="12sp" />
         </LinearLayout>
 
-        <android.support.v7.widget.AppCompatCheckBox
+        <androidx.appcompat.widget.AppCompatCheckBox
             android:id="@+id/checkbox_item_file_list"
             android:checked="true"
             android:enabled="false"
diff --git a/filepicker/src/main/res/layout/loading_layout.xml b/filepicker/src/main/res/layout/loading_layout.xml
index bb4cdcb..5afab43 100644
--- a/filepicker/src/main/res/layout/loading_layout.xml
+++ b/filepicker/src/main/res/layout/loading_layout.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
@@ -27,4 +27,4 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/progressBar" />
 
-</android.support.constraint.ConstraintLayout>
\ No newline at end of file
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/filepicker/src/main/res/layout/pop_select_sdcard.xml b/filepicker/src/main/res/layout/pop_select_sdcard.xml
index 53146be..c9def53 100644
--- a/filepicker/src/main/res/layout/pop_select_sdcard.xml
+++ b/filepicker/src/main/res/layout/pop_select_sdcard.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/rcv_pop_select_sdcard"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
diff --git a/filepicker/src/main/res/mipmap/ai.png b/filepicker/src/main/res/mipmap/ai.png
new file mode 100644
index 0000000..309a1b8
Binary files /dev/null and b/filepicker/src/main/res/mipmap/ai.png differ
diff --git a/filepicker/src/main/res/mipmap/apk.png b/filepicker/src/main/res/mipmap/apk.png
index 317b996..1c3e47a 100644
Binary files a/filepicker/src/main/res/mipmap/apk.png and b/filepicker/src/main/res/mipmap/apk.png differ
diff --git a/filepicker/src/main/res/mipmap/attachment.png b/filepicker/src/main/res/mipmap/attachment.png
index eae60a7..58cec43 100644
Binary files a/filepicker/src/main/res/mipmap/attachment.png and b/filepicker/src/main/res/mipmap/attachment.png differ
diff --git a/filepicker/src/main/res/mipmap/avi.png b/filepicker/src/main/res/mipmap/avi.png
index 17af07c..ebaba24 100644
Binary files a/filepicker/src/main/res/mipmap/avi.png and b/filepicker/src/main/res/mipmap/avi.png differ
diff --git a/filepicker/src/main/res/mipmap/com.png b/filepicker/src/main/res/mipmap/com.png
new file mode 100644
index 0000000..09cc0c4
Binary files /dev/null and b/filepicker/src/main/res/mipmap/com.png differ
diff --git a/filepicker/src/main/res/mipmap/doc.png b/filepicker/src/main/res/mipmap/doc.png
index ab046f8..84a38fc 100644
Binary files a/filepicker/src/main/res/mipmap/doc.png and b/filepicker/src/main/res/mipmap/doc.png differ
diff --git a/filepicker/src/main/res/mipmap/documents.png b/filepicker/src/main/res/mipmap/documents.png
index 433ef50..fa99ac5 100644
Binary files a/filepicker/src/main/res/mipmap/documents.png and b/filepicker/src/main/res/mipmap/documents.png differ
diff --git a/filepicker/src/main/res/mipmap/empty.png b/filepicker/src/main/res/mipmap/empty.png
index bbce869..f10592e 100644
Binary files a/filepicker/src/main/res/mipmap/empty.png and b/filepicker/src/main/res/mipmap/empty.png differ
diff --git a/filepicker/src/main/res/mipmap/eps.png b/filepicker/src/main/res/mipmap/eps.png
new file mode 100644
index 0000000..8184787
Binary files /dev/null and b/filepicker/src/main/res/mipmap/eps.png differ
diff --git a/filepicker/src/main/res/mipmap/exe.png b/filepicker/src/main/res/mipmap/exe.png
index 1a8a165..ddde204 100644
Binary files a/filepicker/src/main/res/mipmap/exe.png and b/filepicker/src/main/res/mipmap/exe.png differ
diff --git a/filepicker/src/main/res/mipmap/flv.png b/filepicker/src/main/res/mipmap/flv.png
index 133e6c0..1a793f6 100644
Binary files a/filepicker/src/main/res/mipmap/flv.png and b/filepicker/src/main/res/mipmap/flv.png differ
diff --git a/filepicker/src/main/res/mipmap/gif.png b/filepicker/src/main/res/mipmap/gif.png
index 13f0cfb..6857902 100644
Binary files a/filepicker/src/main/res/mipmap/gif.png and b/filepicker/src/main/res/mipmap/gif.png differ
diff --git a/filepicker/src/main/res/mipmap/html.png b/filepicker/src/main/res/mipmap/html.png
new file mode 100644
index 0000000..33af1ff
Binary files /dev/null and b/filepicker/src/main/res/mipmap/html.png differ
diff --git a/filepicker/src/main/res/mipmap/jpg.png b/filepicker/src/main/res/mipmap/jpg.png
index ffefb61..b1bb5d7 100644
Binary files a/filepicker/src/main/res/mipmap/jpg.png and b/filepicker/src/main/res/mipmap/jpg.png differ
diff --git a/filepicker/src/main/res/mipmap/more.png b/filepicker/src/main/res/mipmap/more.png
index f105446..96b8171 100644
Binary files a/filepicker/src/main/res/mipmap/more.png and b/filepicker/src/main/res/mipmap/more.png differ
diff --git a/filepicker/src/main/res/mipmap/movie.png b/filepicker/src/main/res/mipmap/movie.png
index 8cf2376..3cbb174 100644
Binary files a/filepicker/src/main/res/mipmap/movie.png and b/filepicker/src/main/res/mipmap/movie.png differ
diff --git a/filepicker/src/main/res/mipmap/mp3.png b/filepicker/src/main/res/mipmap/mp3.png
index 78dc19a..754a832 100644
Binary files a/filepicker/src/main/res/mipmap/mp3.png and b/filepicker/src/main/res/mipmap/mp3.png differ
diff --git a/filepicker/src/main/res/mipmap/mp4.png b/filepicker/src/main/res/mipmap/mp4.png
new file mode 100644
index 0000000..b6c0f56
Binary files /dev/null and b/filepicker/src/main/res/mipmap/mp4.png differ
diff --git a/filepicker/src/main/res/mipmap/password.png b/filepicker/src/main/res/mipmap/password.png
index d7fad43..b67e920 100644
Binary files a/filepicker/src/main/res/mipmap/password.png and b/filepicker/src/main/res/mipmap/password.png differ
diff --git a/filepicker/src/main/res/mipmap/pdf.png b/filepicker/src/main/res/mipmap/pdf.png
index e1b5d4c..4159be0 100644
Binary files a/filepicker/src/main/res/mipmap/pdf.png and b/filepicker/src/main/res/mipmap/pdf.png differ
diff --git a/filepicker/src/main/res/mipmap/png.png b/filepicker/src/main/res/mipmap/png.png
index 13d7f0d..959b16c 100644
Binary files a/filepicker/src/main/res/mipmap/png.png and b/filepicker/src/main/res/mipmap/png.png differ
diff --git a/filepicker/src/main/res/mipmap/ppt.png b/filepicker/src/main/res/mipmap/ppt.png
index f0b06d5..0040058 100644
Binary files a/filepicker/src/main/res/mipmap/ppt.png and b/filepicker/src/main/res/mipmap/ppt.png differ
diff --git a/filepicker/src/main/res/mipmap/psd.png b/filepicker/src/main/res/mipmap/psd.png
new file mode 100644
index 0000000..33b2583
Binary files /dev/null and b/filepicker/src/main/res/mipmap/psd.png differ
diff --git a/filepicker/src/main/res/mipmap/svg.png b/filepicker/src/main/res/mipmap/svg.png
new file mode 100644
index 0000000..a00c544
Binary files /dev/null and b/filepicker/src/main/res/mipmap/svg.png differ
diff --git a/filepicker/src/main/res/mipmap/ttf.png b/filepicker/src/main/res/mipmap/ttf.png
new file mode 100644
index 0000000..4c3678b
Binary files /dev/null and b/filepicker/src/main/res/mipmap/ttf.png differ
diff --git a/filepicker/src/main/res/mipmap/txt.png b/filepicker/src/main/res/mipmap/txt.png
new file mode 100644
index 0000000..7fc3df6
Binary files /dev/null and b/filepicker/src/main/res/mipmap/txt.png differ
diff --git a/filepicker/src/main/res/mipmap/unknow.png b/filepicker/src/main/res/mipmap/unknow.png
new file mode 100644
index 0000000..e2a05c8
Binary files /dev/null and b/filepicker/src/main/res/mipmap/unknow.png differ
diff --git a/filepicker/src/main/res/mipmap/wav.png b/filepicker/src/main/res/mipmap/wav.png
index 0bb7acb..26c55f7 100644
Binary files a/filepicker/src/main/res/mipmap/wav.png and b/filepicker/src/main/res/mipmap/wav.png differ
diff --git a/filepicker/src/main/res/mipmap/xls.png b/filepicker/src/main/res/mipmap/xls.png
index f822c6e..e60d2e0 100644
Binary files a/filepicker/src/main/res/mipmap/xls.png and b/filepicker/src/main/res/mipmap/xls.png differ
diff --git a/filepicker/src/main/res/mipmap/zip.png b/filepicker/src/main/res/mipmap/zip.png
index 5fa4833..668b4ce 100644
Binary files a/filepicker/src/main/res/mipmap/zip.png and b/filepicker/src/main/res/mipmap/zip.png differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 902360b..86cf730 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Apr 16 15:31:49 CST 2018
+#Fri Jul 10 09:48:25 CST 2020
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip