Skip to content

Commit 56eda94

Browse files
committed
completed
1 parent ab8f49a commit 56eda94

File tree

63 files changed

+463
-284
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+463
-284
lines changed

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/acitivties/FileBrowserMainActivity.java

Lines changed: 79 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,14 @@
3939

4040
import ir.smartdevelopers.smartfilebrowser.R;
4141
import ir.smartdevelopers.smartfilebrowser.adapters.AlbumAdapter;
42-
import ir.smartdevelopers.smartfilebrowser.customClasses.FileModel;
42+
import ir.smartdevelopers.smartfilebrowser.models.FileModel;
4343
import ir.smartdevelopers.smartfilebrowser.customClasses.FileUtil;
4444
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemChooseListener;
4545
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemClickListener;
4646
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemSelectListener;
4747
import ir.smartdevelopers.smartfilebrowser.customClasses.RoundLinearLayout;
4848
import ir.smartdevelopers.smartfilebrowser.customClasses.SFBFileFilter;
4949
import ir.smartdevelopers.smartfilebrowser.customClasses.SearchView;
50-
import ir.smartdevelopers.smartfilebrowser.customClasses.Utils;
5150
import ir.smartdevelopers.smartfilebrowser.fragments.FileBrowserFragment;
5251
import ir.smartdevelopers.smartfilebrowser.fragments.GalleryFragment;
5352
import ir.smartdevelopers.smartfilebrowser.models.AlbumModel;
@@ -77,9 +76,9 @@ public class FileBrowserMainActivity extends AppCompatActivity {
7776
private View mSelectionContainer;
7877
private TextView txtSelectionCount;
7978
private ImageView btnSelectionOk;
80-
private OnItemSelectListener<FileBrowserModel> mOnFileItemSelectListener;
79+
private OnItemSelectListener<FileModel> mOnFileItemSelectListener;
8180
private OnItemChooseListener mOnItemChooseListener;
82-
private OnItemSelectListener<GalleryModel> mOnGalleryItemSelectListener;
81+
// private OnItemSelectListener<GalleryModel> mOnGalleryItemSelectListener;
8382
private OnItemClickListener<GalleryModel> mOnGalleryItemClickListener;
8483

8584
private SearchView.OnVisibilityChangeListener mOnVisibilityChangeListener;
@@ -159,10 +158,6 @@ protected void onCreate(Bundle savedInstanceState) {
159158
mSelectionFileViewModel = new ViewModelProvider(this).get(SelectionFileViewModel.class);
160159
mGalleryViewModel = new ViewModelProvider(this, new ViewModelProvider.AndroidViewModelFactory(getApplication()))
161160
.get(GalleryViewModel.class);
162-
findViews();
163-
getDataFromIntent();
164-
initListeners();
165-
initViews(savedInstanceState);
166161
if (savedInstanceState == null) {
167162
if (mShowGalleryTab) {
168163
mPageType = PageType.TYPE_GALLERY;
@@ -175,15 +170,20 @@ protected void onCreate(Bundle savedInstanceState) {
175170
} else {
176171
finish();
177172
}
178-
showSuitableFragment(mPageType, true, false, true);
173+
179174
} else {
180175
mPageType = (PageType) savedInstanceState.getSerializable("page_type");
181-
showSuitableFragment(mPageType, true, false, false);
176+
182177
}
178+
findViews();
179+
getDataFromIntent();
180+
initListeners();
181+
initViews(savedInstanceState);
183182

184183

185-
if (savedInstanceState != null) {
186184

185+
if (savedInstanceState != null) {
186+
showSuitableFragment(mPageType, true, false, false);
187187
int bottomSheetState = savedInstanceState.getInt("bottomSheet_state");
188188
mBottomSheetBehavior.setState(bottomSheetState);
189189
if (bottomSheetState == BottomSheetBehavior.STATE_EXPANDED) {
@@ -199,6 +199,8 @@ protected void onCreate(Bundle savedInstanceState) {
199199
if (albumListIsVisible) {
200200
showAlbumsList(false);
201201
}
202+
}else {
203+
showSuitableFragment(mPageType, true, false, true);
202204
}
203205
}
204206

@@ -274,16 +276,32 @@ public boolean onTabSelected(int position, boolean wasSelected) {
274276
return true;
275277
}
276278
};
277-
mOnFileItemSelectListener = new OnItemSelectListener<FileBrowserModel>() {
279+
mOnFileItemSelectListener = new OnItemSelectListener<FileModel>() {
278280
@Override
279-
public void onItemSelected(FileBrowserModel model, int position, int selectionCount) {
280-
if (selectionCount > 0) {
281-
showSelectionOkButton();
282-
changeSelectionCount(selectionCount);
283-
setGalleryEnabled(false);
284-
} else {
285-
hideSelectionOkButton();
286-
setGalleryEnabled(true);
281+
public void onItemSelected(FileModel model, int position, int selectionCount) {
282+
if (model instanceof FileBrowserModel) {
283+
if (selectionCount > 0) {
284+
showSelectionOkButton();
285+
changeSelectionCount(selectionCount);
286+
setGalleryEnabled(false);
287+
} else {
288+
hideSelectionOkButton();
289+
setGalleryEnabled(true);
290+
}
291+
}
292+
if (model instanceof GalleryModel){
293+
if (!mCanSelectMultipleInGallery) {
294+
sendBackResult(model);
295+
return;
296+
}
297+
if (selectionCount > 0) {
298+
showSelectionOkButton();
299+
changeSelectionCount(selectionCount);
300+
setFileBrowserEnabled(false);
301+
} else {
302+
hideSelectionOkButton();
303+
setFileBrowserEnabled(true);
304+
}
287305
}
288306
mSelectionFileViewModel.onItemSelected(selectionCount, selectionCount > 0);
289307
}
@@ -294,24 +312,24 @@ public void onChoose(FileModel fileModel) {
294312
sendBackResult(fileModel);
295313
}
296314
};
297-
mOnGalleryItemSelectListener = new OnItemSelectListener<GalleryModel>() {
298-
@Override
299-
public void onItemSelected(GalleryModel model, int position, int selectionCount) {
300-
if (!mCanSelectMultipleInGallery) {
301-
sendBackResult(model);
302-
return;
303-
}
304-
if (selectionCount > 0) {
305-
showSelectionOkButton();
306-
changeSelectionCount(selectionCount);
307-
setFileBrowserEnabled(false);
308-
} else {
309-
hideSelectionOkButton();
310-
setFileBrowserEnabled(true);
311-
}
312-
313-
}
314-
};
315+
// mOnGalleryItemSelectListener = new OnItemSelectListener<GalleryModel>() {
316+
// @Override
317+
// public void onItemSelected(GalleryModel model, int position, int selectionCount) {
318+
// if (!mCanSelectMultipleInGallery) {
319+
// sendBackResult(model);
320+
// return;
321+
// }
322+
// if (selectionCount > 0) {
323+
// showSelectionOkButton();
324+
// changeSelectionCount(selectionCount);
325+
// setFileBrowserEnabled(false);
326+
// } else {
327+
// hideSelectionOkButton();
328+
// setFileBrowserEnabled(true);
329+
// }
330+
//
331+
// }
332+
// };
315333
mOnGalleryItemClickListener = new OnItemClickListener<GalleryModel>() {
316334
@Override
317335
public void onItemClicked(GalleryModel model, int position) {
@@ -393,7 +411,7 @@ private void initViews(Bundle savedInstanceState) {
393411
appBarParams.height = mActionBarSize;
394412
mAppBarLayout.setLayoutParams(appBarParams);
395413
int screenHeight = getResources().getDisplayMetrics().heightPixels;
396-
mRadius = getResources().getDimension(R.dimen.bottom_sheet_top_radius);
414+
mRadius = getResources().getDimension(R.dimen.sfb_bottom_sheet_top_radius);
397415
mAppBarLayout.setTranslationY(-mActionBarSize);
398416
mBottomSheetBehavior = BottomSheetBehavior.from(mBottomSheetRoot);
399417
mBottomSheetBehavior.setHideable(true);
@@ -455,8 +473,13 @@ public boolean onTouch(View v, MotionEvent event) {
455473
});
456474

457475
if (mSelectionFileViewModel.getSelectionHelperLiveData().getValue().selectionCount > 0) {
458-
mOnFileItemSelectListener.onItemSelected(null, 0,
459-
mSelectionFileViewModel.getSelectionHelperLiveData().getValue().selectionCount);
476+
if (mPageType==PageType.TYPE_GALLERY){
477+
mOnFileItemSelectListener.onItemSelected(new GalleryModel(), 0,
478+
mSelectionFileViewModel.getSelectionHelperLiveData().getValue().selectionCount);
479+
}else {
480+
mOnFileItemSelectListener.onItemSelected(new FileBrowserModel(), 0,
481+
mSelectionFileViewModel.getSelectionHelperLiveData().getValue().selectionCount);
482+
}
460483
}
461484
// if (savedInstanceState==null){
462485
// mBottomSheetRoot.post(()->{
@@ -803,14 +826,14 @@ private void showSelectionOkButton() {
803826
if (mSelectionContainer.getVisibility() == View.VISIBLE) {
804827
return;
805828
}
806-
mSelectionContainer.post(()->{
807-
mSelectionContainer.animate().setDuration(100).scaleX(1).scaleY(1)
808-
.withStartAction(() -> {
809-
mSelectionContainer.setScaleX(0);
810-
mSelectionContainer.setScaleY(0);
811-
mSelectionContainer.setVisibility(View.VISIBLE);
812-
}).start();
813-
});
829+
mSelectionContainer.post(() -> {
830+
mSelectionContainer.animate().setDuration(100).scaleX(1).scaleY(1)
831+
.withStartAction(() -> {
832+
mSelectionContainer.setScaleX(0);
833+
mSelectionContainer.setScaleY(0);
834+
mSelectionContainer.setVisibility(View.VISIBLE);
835+
}).start();
836+
});
814837
}
815838

816839
private void hideSelectionOkButton() {
@@ -922,7 +945,7 @@ private float convertOffsetToDimen(float offsetStart, float offsetEnd, float dim
922945
public void finish() {
923946
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
924947
super.finish();
925-
overridePendingTransition(R.anim.not_anim, R.anim.fade_out);
948+
overridePendingTransition(R.anim.sfb_not_anim, R.anim.sfb_fade_out);
926949

927950
}
928951

@@ -955,7 +978,7 @@ public void onBackPressed() {
955978

956979
mSelectionFileViewModel.removeAllSelections();
957980
if (mFileBrowserFragment != null) {
958-
mOnFileItemSelectListener.onItemSelected(null, 0, 0);
981+
mOnFileItemSelectListener.onItemSelected(new FileBrowserModel(), 0, 0);
959982
mFileBrowserFragment.removeAllSelection();
960983
}
961984

@@ -965,7 +988,7 @@ public void onBackPressed() {
965988
if (mGalleryFragment != null) {
966989
if (mGalleryFragment.getSelectionCount() > 0) {
967990

968-
mOnGalleryItemSelectListener.onItemSelected(null, 0, 0);
991+
mOnFileItemSelectListener.onItemSelected(new GalleryModel(), 0, 0);
969992
mGalleryFragment.removeAllSelections();
970993
return;
971994
}
@@ -987,13 +1010,13 @@ public PageType getPageType() {
9871010
return mPageType;
9881011
}
9891012

990-
public OnItemSelectListener<FileBrowserModel> getOnFileItemSelectListener() {
1013+
public OnItemSelectListener<FileModel> getOnFileItemSelectListener() {
9911014
return mOnFileItemSelectListener;
9921015
}
9931016

994-
public OnItemSelectListener<GalleryModel> getOnGalleryItemSelectListener() {
995-
return mOnGalleryItemSelectListener;
996-
}
1017+
// public OnItemSelectListener<GalleryModel> getOnGalleryItemSelectListener() {
1018+
// return mOnGalleryItemSelectListener;
1019+
// }
9971020

9981021
public OnItemClickListener<GalleryModel> getOnGalleryItemClickListener() {
9991022
return mOnGalleryItemClickListener;

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/adapters/FileBrowserAdapter.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import android.view.LayoutInflater;
44
import android.view.View;
55
import android.view.ViewGroup;
6-
import android.widget.CheckBox;
76
import android.widget.Filter;
87
import android.widget.Filterable;
98
import android.widget.ImageView;
109
import android.widget.TextView;
1110

1211
import androidx.annotation.NonNull;
13-
import androidx.appcompat.widget.AppCompatCheckBox;
1412
import androidx.recyclerview.widget.RecyclerView;
1513

1614
import com.bumptech.glide.Glide;
@@ -23,12 +21,12 @@
2321
import ir.smartdevelopers.smartfilebrowser.customClasses.FileUtil;
2422
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemChooseListener;
2523
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemClickListener;
26-
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemLongClickListener;
2724
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemSelectListener;
2825
import ir.smartdevelopers.smartfilebrowser.customClasses.OnSearchListener;
2926
import ir.smartdevelopers.smartfilebrowser.customClasses.SFBCheckBoxWithTick;
3027
import ir.smartdevelopers.smartfilebrowser.customClasses.Utils;
3128
import ir.smartdevelopers.smartfilebrowser.models.FileBrowserModel;
29+
import ir.smartdevelopers.smartfilebrowser.models.FileModel;
3230

3331
public class FileBrowserAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements Filterable {
3432

@@ -40,7 +38,7 @@ public class FileBrowserAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
4038
private OnItemClickListener<FileBrowserModel> mOnItemClickListener;
4139
private OnItemChooseListener mOnItemChooseListener;
4240
private OnSearchListener mOnSearchListener;
43-
private OnItemSelectListener<FileBrowserModel> mOnItemSelectListener;
41+
private OnItemSelectListener<FileModel> mOnItemSelectListener;
4442
// private boolean isMultiSelect=false;
4543
private List<File> mSelectedFiles;
4644
private boolean mCanSelectMultiple=true;
@@ -111,7 +109,7 @@ public void setOnItemClickListener(OnItemClickListener<FileBrowserModel> onItemC
111109

112110

113111

114-
public void setOnItemSelectListener(OnItemSelectListener<FileBrowserModel> onItemSelectListener) {
112+
public void setOnItemSelectListener(OnItemSelectListener<FileModel> onItemSelectListener) {
115113
mOnItemSelectListener = onItemSelectListener;
116114
}
117115

@@ -264,15 +262,15 @@ void bindView(FileBrowserModel model) {
264262
}
265263
switch (model.getModelType()) {
266264
case FileBrowserModel.MODEL_TYPE_EXTERNAL_STORAGE:
267-
imgIcon.setImageResource(R.drawable.ic_sdcard);
265+
imgIcon.setImageResource(R.drawable.sfb_ic_sdcard);
268266
hideExtensionText();
269267
break;
270268
case FileBrowserModel.MODEL_TYPE_INTERNAL_STORAGE:
271-
imgIcon.setImageResource(R.drawable.ic_storage);
269+
imgIcon.setImageResource(R.drawable.sfb_ic_storage);
272270
hideExtensionText();
273271
break;
274272
case FileBrowserModel.MODEL_TYPE_DOWNLOAD_FOLDER:
275-
imgIcon.setImageResource(R.drawable.ic_download_folder);
273+
imgIcon.setImageResource(R.drawable.sfb_ic_download_folder);
276274
divider.setVisibility(View.GONE);
277275
hideExtensionText();
278276
break;

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/adapters/GalleryAdapter.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,21 @@
2323
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemClickListener;
2424
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemSelectListener;
2525
import ir.smartdevelopers.smartfilebrowser.customClasses.SFBCountingCheckBox;
26+
import ir.smartdevelopers.smartfilebrowser.models.FileModel;
2627
import ir.smartdevelopers.smartfilebrowser.models.GalleryModel;
2728

2829
public class GalleryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
2930

3031
private List<GalleryModel> mGalleryModels;
31-
private List<File> mSelectedFiles=new ArrayList<>();
32+
private List<File> mSelectedFiles;
3233
private boolean mCanSelectMultiple=true;
33-
private OnItemSelectListener<GalleryModel> mOnItemSelectListener;
34+
private OnItemSelectListener<FileModel> mOnItemSelectListener;
3435
private OnItemClickListener<GalleryModel> mOnItemClickListener;
3536
private OnItemChooseListener mOnItemChooseListener;
3637

37-
public GalleryAdapter() {
38+
public GalleryAdapter(List<File> selectedFiles) {
3839
mGalleryModels=new ArrayList<>();
40+
mSelectedFiles=selectedFiles;
3941
}
4042

4143
@NonNull
@@ -113,7 +115,7 @@ public void setCanSelectMultiple(boolean canSelectMultiple) {
113115
mCanSelectMultiple = canSelectMultiple;
114116
}
115117

116-
public void setOnItemSelectListener(OnItemSelectListener<GalleryModel> onItemSelectListener) {
118+
public void setOnItemSelectListener(OnItemSelectListener<FileModel> onItemSelectListener) {
117119
mOnItemSelectListener = onItemSelectListener;
118120
}
119121

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/customClasses/FileBrowserItemDecoration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import android.view.View;
88

99
import androidx.annotation.NonNull;
10-
import androidx.recyclerview.widget.DividerItemDecoration;
1110
import androidx.recyclerview.widget.RecyclerView;
1211

1312
import ir.smartdevelopers.smartfilebrowser.R;
@@ -29,15 +28,15 @@ public void getItemOffsets(@NonNull Rect outRect, @NonNull View view,
2928
@NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
3029
RecyclerView.ViewHolder viewHolder=parent.getChildViewHolder(view);
3130
if (viewHolder.getItemViewType()== FileBrowserAdapter.VIEW_TYPE_ALL_FILE_TEXT){
32-
outRect.top= view.getResources().getDimensionPixelSize(R.dimen.fileBrowserListSpliterSize);
31+
outRect.top= view.getResources().getDimensionPixelSize(R.dimen.sfb_fileBrowserListSpliterSize);
3332
}
3433
}
3534

3635
@Override
3736
public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
3837
c.save();
3938
int chileCount=parent.getChildCount();
40-
int size=parent.getResources().getDimensionPixelSize(R.dimen.fileBrowserListSpliterSize);
39+
int size=parent.getResources().getDimensionPixelSize(R.dimen.sfb_fileBrowserListSpliterSize);
4140
int left=0;
4241
int right=parent.getWidth();
4342
for (int i=0;i<chileCount;i++){
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package ir.smartdevelopers.smartfilebrowser.customClasses;
22

3+
import ir.smartdevelopers.smartfilebrowser.models.FileModel;
4+
35
public interface OnItemChooseListener {
46
void onChoose(FileModel fileModel);
57
}

0 commit comments

Comments
 (0)