Skip to content

Commit bdfa9d5

Browse files
committed
update docFragment
1 parent 838bec5 commit bdfa9d5

File tree

10 files changed

+202
-58
lines changed

10 files changed

+202
-58
lines changed

app/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ dependencies {
4343
implementation 'io.reactivex.rxjava2:rxjava:2.2.5'
4444
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
4545

46+
47+
/*Material Dialog*/
48+
implementation 'com.afollestad.material-dialogs:core:2.7.0'
49+
4650
testImplementation 'junit:junit:4.12'
4751
androidTestImplementation 'androidx.test:runner:1.1.1'
4852
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

app/src/main/java/com/greentoad/turtlebody/docpicker/sample/ActivityHome.kt

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
package com.greentoad.turtlebody.docpicker.sample
22

33
import android.annotation.SuppressLint
4+
import android.graphics.Color
5+
import android.graphics.drawable.ColorDrawable
46
import android.os.Bundle
7+
import android.widget.Button
58
import androidx.appcompat.app.AppCompatActivity
9+
import com.afollestad.materialdialogs.MaterialDialog
10+
import com.afollestad.materialdialogs.customview.customView
11+
import com.afollestad.materialdialogs.customview.getCustomView
612
import com.greentoad.turtlebody.docpicker.DocPicker
713
import com.greentoad.turtlebody.docpicker.core.DocConstants
814
import com.greentoad.turtlebody.docpicker.core.DocPickerConfig
@@ -20,17 +26,46 @@ class ActivityHome : AppCompatActivity(),AnkoLogger {
2026
}
2127

2228
private fun initButton() {
23-
activity_main_doc_picker.setOnClickListener { startOnlyDocPicker() }
24-
activity_main_all_picker.setOnClickListener { startAllPicker() }
29+
activity_main_doc_picker.setOnClickListener { showAlert(true) }
30+
activity_main_all_picker.setOnClickListener { showAlert(false) }
31+
}
32+
33+
34+
private fun showAlert(isOnlyDoc: Boolean){
35+
MaterialDialog(this).show {
36+
customView(R.layout.dialog_view,scrollable = true)
37+
this.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
38+
39+
val view = this.getCustomView()
40+
val singleBtn = view.findViewById<Button>(R.id.activity_home_single_select)
41+
val multiBtn = view.findViewById<Button>(R.id.activity_home_multi_select)
42+
43+
singleBtn.setOnClickListener {
44+
if(isOnlyDoc)
45+
startOnlyDocPicker(false)
46+
else
47+
startAllPicker(false)
48+
this.dismiss()
49+
50+
}
51+
multiBtn.setOnClickListener {
52+
if(isOnlyDoc)
53+
startOnlyDocPicker(true)
54+
else
55+
startAllPicker(true)
56+
this.dismiss()
57+
58+
}
59+
}
2560
}
2661

2762

2863

2964
@SuppressLint("CheckResult")
30-
private fun startOnlyDocPicker() {
65+
private fun startOnlyDocPicker(isMultiple: Boolean) {
3166
DocPicker.with(this)
3267
.setConfig(DocPickerConfig()
33-
.setAllowMultiImages(true)
68+
.setAllowMultiImages(isMultiple)
3469
.setExtArgs(arrayListOf<String>(
3570
DocConstants.DocTypes.PDF,
3671
DocConstants.DocTypes.MS_WORD,
@@ -48,10 +83,10 @@ class ActivityHome : AppCompatActivity(),AnkoLogger {
4883
}
4984

5085
@SuppressLint("CheckResult")
51-
private fun startAllPicker() {
86+
private fun startAllPicker(isMultiple: Boolean) {
5287
DocPicker.with(this)
5388
.setConfig(DocPickerConfig()
54-
.setAllowMultiImages(true)
89+
.setAllowMultiImages(isMultiple)
5590
.setExtArgs(arrayListOf<String>(
5691
DocConstants.DocTypes.PDF,
5792
DocConstants.DocTypes.MS_WORD,
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid android:color="@color/md_white_1000"/>
5+
<corners android:radius="15dp"/>
6+
</shape>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid
5+
android:color="#FFFFFF" />
6+
<corners
7+
android:radius="10dp" />
8+
<stroke
9+
android:width="1dp"
10+
android:color="@color/md_grey_300" />
11+
</shape>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3+
<item android:state_pressed="true"
4+
android:drawable="@drawable/dr_rect_round_accent"/>
5+
6+
<item android:state_focused="true"
7+
android:drawable="@drawable/dr_rect_round_accent"/>
8+
9+
<item android:state_pressed="false"
10+
android:drawable="@drawable/dr_rect_border_grey_300"/>
11+
</selector>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<selector xmlns:android="http://schemas.android.com/apk/res/android">
2+
3+
<!-- Focused and pressed -->
4+
<item
5+
android:state_focused="true"
6+
android:state_pressed="true"
7+
android:color="#ffffff" />
8+
9+
<!-- Unfocused and pressed -->
10+
<item android:state_focused="false"
11+
android:state_pressed="true"
12+
android:color="#ffffff" />
13+
14+
<!-- Default color -->
15+
<item android:color="#000000" />
16+
17+
</selector>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout
3+
xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto"
5+
xmlns:tools="http://schemas.android.com/tools"
6+
android:orientation="vertical"
7+
android:layout_width="300dp"
8+
android:padding="24dp"
9+
android:layout_height="wrap_content"
10+
android:layout_gravity="center"
11+
android:background="@drawable/dr_rect_round_white">
12+
13+
14+
<TextView
15+
android:layout_width="wrap_content"
16+
android:layout_height="wrap_content"
17+
android:text="Selection Type"
18+
android:layout_gravity="center_horizontal"
19+
android:textSize="18sp"
20+
android:textColor="@color/md_black_1000"/>
21+
22+
<LinearLayout
23+
android:layout_marginTop="30dp"
24+
android:layout_width="match_parent"
25+
android:layout_height="wrap_content"
26+
android:orientation="horizontal"
27+
android:weightSum="2">
28+
29+
<Button
30+
android:id="@+id/activity_home_single_select"
31+
android:layout_width="0dp"
32+
android:layout_weight="1"
33+
android:layout_height="wrap_content"
34+
android:text="Single"
35+
android:textSize="16sp"
36+
android:layout_marginEnd="3dp"
37+
android:layout_marginRight="3dp"
38+
android:textColor="@drawable/sc_text_color_toggle"
39+
android:textAppearance="@style/App.TextAppearance.h4.Title"
40+
android:background="@drawable/sc_button_blue"/>
41+
42+
<Button
43+
android:id="@+id/activity_home_multi_select"
44+
android:layout_width="0dp"
45+
android:layout_weight="1"
46+
android:layout_height="wrap_content"
47+
android:text="Multiple"
48+
android:textSize="16sp"
49+
android:layout_marginStart="3dp"
50+
android:layout_marginLeft="3dp"
51+
android:textColor="@drawable/sc_text_color_toggle"
52+
android:textAppearance="@style/App.TextAppearance.h4.Title"
53+
android:background="@drawable/sc_button_blue"/>
54+
</LinearLayout>
55+
56+
</LinearLayout>

docpicker/src/main/java/com/greentoad/turtlebody/docpicker/ui/components/ActivityLibMain.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class ActivityLibMain : ActivityBase(){
112112
private fun startDocFolderFragment() {
113113
toolbarTitle = "Select Folder"
114114
tb_doc_picker_toolbar_txt_count.visibility = View.GONE
115-
mMenuItem.isVisible = true
115+
mMenuItem.isVisible = false
116116

117117
val bundle = Bundle()
118118
bundle.putSerializable(DocPickerConfig.ARG_BUNDLE, mPickerConfig)

docpicker/src/main/java/com/greentoad/turtlebody/docpicker/ui/components/file/DocAdapter.kt

Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import org.jetbrains.anko.AnkoLogger
1313
import android.graphics.PorterDuff
1414
import android.graphics.PorterDuffColorFilter
1515
import com.greentoad.turtlebody.docpicker.core.DocConstants
16+
import org.jetbrains.anko.info
1617

1718

1819
/**
@@ -93,47 +94,50 @@ class DocAdapter: RecyclerView.Adapter<DocAdapter.DocVewHolder>(), AnkoLogger {
9394

9495
val mDrawable = ContextCompat.getDrawable(mContext, R.drawable.dr_rect_round_red_doc_background)
9596

96-
97-
when {
98-
DocConstants.getExt(DocConstants.DocTypes.PDF).contains(extType!!) -> {
99-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.PDF]!!, PorterDuff.Mode.SRC)
100-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.PDF]
101-
}
102-
DocConstants.getExt(DocConstants.DocTypes.MS_WORD).contains(extType) -> {
103-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.MS_WORD]!!, PorterDuff.Mode.SRC)
104-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.MS_WORD]
105-
}
106-
DocConstants.getExt(DocConstants.DocTypes.MS_POWERPOINT).contains(extType) -> {
107-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.MS_POWERPOINT]!!, PorterDuff.Mode.SRC)
108-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.MS_POWERPOINT]
109-
}
110-
DocConstants.getExt(DocConstants.DocTypes.MS_EXCEL).contains(extType) -> {
111-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.MS_EXCEL]!!, PorterDuff.Mode.SRC)
112-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.MS_EXCEL]
113-
}
114-
DocConstants.getExt(DocConstants.DocTypes.TEXT).contains(extType) -> {
115-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.TEXT]!!, PorterDuff.Mode.SRC)
116-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.TEXT]
117-
118-
}
119-
DocConstants.getExt(DocConstants.DocTypes.IMAGE).contains(extType) -> {
120-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.IMAGE]!!, PorterDuff.Mode.SRC)
121-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.IMAGE]
122-
}
123-
DocConstants.getExt(DocConstants.DocTypes.VIDEO).contains(extType) -> {
124-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.VIDEO]!!, PorterDuff.Mode.SRC)
125-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.VIDEO]
126-
}
127-
DocConstants.getExt(DocConstants.DocTypes.AUDIO).contains(extType) -> {
128-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.AUDIO]!!, PorterDuff.Mode.SRC)
129-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.AUDIO]
130-
}
131-
else ->{
132-
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.PDF]!!, PorterDuff.Mode.SRC)
133-
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.PDF]
97+
info { "extType: $extType" }
98+
99+
if(extType!=null){
100+
when {
101+
DocConstants.getExt(DocConstants.DocTypes.PDF).contains(extType!!) -> {
102+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.PDF]!!, PorterDuff.Mode.SRC)
103+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.PDF]
104+
}
105+
DocConstants.getExt(DocConstants.DocTypes.MS_WORD).contains(extType) -> {
106+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.MS_WORD]!!, PorterDuff.Mode.SRC)
107+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.MS_WORD]
108+
}
109+
DocConstants.getExt(DocConstants.DocTypes.MS_POWERPOINT).contains(extType) -> {
110+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.MS_POWERPOINT]!!, PorterDuff.Mode.SRC)
111+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.MS_POWERPOINT]
112+
}
113+
DocConstants.getExt(DocConstants.DocTypes.MS_EXCEL).contains(extType) -> {
114+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.MS_EXCEL]!!, PorterDuff.Mode.SRC)
115+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.MS_EXCEL]
116+
}
117+
DocConstants.getExt(DocConstants.DocTypes.TEXT).contains(extType) -> {
118+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.TEXT]!!, PorterDuff.Mode.SRC)
119+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.TEXT]
120+
121+
}
122+
DocConstants.getExt(DocConstants.DocTypes.IMAGE).contains(extType) -> {
123+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.IMAGE]!!, PorterDuff.Mode.SRC)
124+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.IMAGE]
125+
}
126+
DocConstants.getExt(DocConstants.DocTypes.VIDEO).contains(extType) -> {
127+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.VIDEO]!!, PorterDuff.Mode.SRC)
128+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.VIDEO]
129+
}
130+
DocConstants.getExt(DocConstants.DocTypes.AUDIO).contains(extType) -> {
131+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.AUDIO]!!, PorterDuff.Mode.SRC)
132+
itemView.tb_doc_picker_item_doc_file_ext.text = DocConstants.docTypeMaps()[DocConstants.DocTypes.AUDIO]
133+
}
134+
else ->{
135+
mDrawable?.colorFilter = PorterDuffColorFilter(DocConstants.docTypeMapColor(mContext)[DocConstants.DocTypes.PDF]!!, PorterDuff.Mode.SRC)
136+
itemView.tb_doc_picker_item_doc_file_ext.text = "Other"
137+
}
134138
}
139+
itemView.tb_doc_picker_item_doc_file_ext.background = mDrawable
135140
}
136-
itemView.tb_doc_picker_item_doc_file_ext.background = mDrawable
137141
}
138142
}
139143

docpicker/src/main/java/com/greentoad/turtlebody/docpicker/ui/components/file/DocFragment.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -167,19 +167,19 @@ class DocFragment : FragmentBase(), DocAdapter.OnDocClickListener {
167167
private fun fetchDocFolders() {
168168
val fileItems = Single.fromCallable<Boolean> {
169169
mDocModelList.clear()
170-
mDocModelList = FileManager.getDocFilesInFolder(context!!,mFolderPath)
171-
// val tempArray = FileManager.getDocFilesInFolder(context!!,mFolderPath)
172-
// info { "files size: ${tempArray.size}" }
173-
// for(i in tempArray){
174-
// for (j in mPickerConfig.getCustomExtArgs(mPickerConfig.mUserSelectedDocTypes)) {
175-
// if (File(i.filePath).extension == (j!!.substring(2))) {
170+
//mDocModelList = FileManager.getDocFilesInFolder(context!!,mFolderPath)
171+
val tempArray = FileManager.getDocFilesInFolder(context!!,mFolderPath)
172+
info { "files size: ${tempArray.size}" }
173+
for(i in tempArray){
174+
for (j in mPickerConfig.getCustomExtArgs(mPickerConfig.mUserSelectedDocTypes)) {
175+
if (File(i.filePath).extension == (j!!.substring(2))) {
176176
// if(i.size>0)
177-
// mDocModelList.add(i)
178-
// }
179-
// }
180-
// }
181-
// info { "list size: ${mDocModelList.size}" }
182-
// info { "added all: ${mDocModelList}" }
177+
mDocModelList.add(i)
178+
}
179+
}
180+
}
181+
info { "list size: ${mDocModelList.size}" }
182+
info { "added all: ${mDocModelList}" }
183183
true
184184
}
185185

0 commit comments

Comments
 (0)