fix MultiImageSelectorFragment

This commit is contained in:
Nereo 2016-05-18 15:11:23 +08:00
parent ca83824959
commit 9734e9fc73
2 changed files with 18 additions and 15 deletions

View File

@ -44,7 +44,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -73,8 +73,6 @@ public class MultiImageSelectorFragment extends Fragment {
public static final String EXTRA_SELECT_MODE = "select_count_mode";
/** Whether show cameratrue by default */
public static final String EXTRA_SHOW_CAMERA = "show_camera";
/** Result data setArrayList&lt;String&gt;*/
public static final String EXTRA_RESULT = "select_result";
/** Original data set */
public static final String EXTRA_DEFAULT_SELECTED_LIST = "default_list";
@ -98,10 +96,7 @@ public class MultiImageSelectorFragment extends Fragment {
private TextView mCategoryText;
private View mPopupAnchorView;
private int mDesireImageCount;
private boolean hasFolderGened = false;
private boolean mIsShowCamera = false;
private File mTmpFile;
@ -124,19 +119,14 @@ public class MultiImageSelectorFragment extends Fragment {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mDesireImageCount = getArguments().getInt(EXTRA_SELECT_COUNT);
final int mode = getArguments().getInt(EXTRA_SELECT_MODE);
final int mode = selectMode();
if(mode == MODE_MULTI) {
ArrayList<String> tmp = getArguments().getStringArrayList(EXTRA_DEFAULT_SELECTED_LIST);
if(tmp != null && tmp.size()>0) {
resultList = tmp;
}
}
mIsShowCamera = getArguments().getBoolean(EXTRA_SHOW_CAMERA, true);
mImageAdapter = new ImageGridAdapter(getActivity(), mIsShowCamera, 3);
mImageAdapter = new ImageGridAdapter(getActivity(), showCamera(), 3);
mImageAdapter.showSelectIndicator(mode == MODE_MULTI);
mPopupAnchorView = view.findViewById(R.id.footer);
@ -231,7 +221,7 @@ public class MultiImageSelectorFragment extends Fragment {
if (index == 0) {
getActivity().getSupportLoaderManager().restartLoader(LOADER_ALL, null, mLoaderCallback);
mCategoryText.setText(R.string.folder_all);
if (mIsShowCamera) {
if (showCamera()) {
mImageAdapter.setShowCamera(true);
} else {
mImageAdapter.setShowCamera(false);
@ -288,6 +278,7 @@ public class MultiImageSelectorFragment extends Fragment {
}
}
}else{
// delete tmp file
while (mTmpFile != null && mTmpFile.exists()){
boolean success = mTmpFile.delete();
if(success){
@ -379,7 +370,7 @@ public class MultiImageSelectorFragment extends Fragment {
mCallback.onImageUnselected(image.path);
}
} else {
if(mDesireImageCount == resultList.size()){
if(selectImageCount() == resultList.size()){
Toast.makeText(getActivity(), R.string.msg_amount_limit, Toast.LENGTH_SHORT).show();
return;
}
@ -498,6 +489,18 @@ public class MultiImageSelectorFragment extends Fragment {
return null;
}
private boolean showCamera(){
return getArguments() == null || getArguments().getBoolean(EXTRA_SHOW_CAMERA, true);
}
private int selectMode(){
return getArguments() == null ? MODE_MULTI : getArguments().getInt(EXTRA_SELECT_MODE);
}
private int selectImageCount(){
return getArguments() == null ? 9 : getArguments().getInt(EXTRA_SELECT_COUNT);
}
/**
* Callback for host activity
*/