提交 706e1c06 编写于 作者: N Nereo

fix MemoryLeak; #74

上级 60a75c80
...@@ -25,12 +25,15 @@ public class MultiImageSelector { ...@@ -25,12 +25,15 @@ public class MultiImageSelector {
private int mMode = MultiImageSelectorActivity.MODE_MULTI; private int mMode = MultiImageSelectorActivity.MODE_MULTI;
private ArrayList<String> mOriginData; private ArrayList<String> mOriginData;
private static MultiImageSelector sSelector; private static MultiImageSelector sSelector;
private Context mContext;
@Deprecated
private MultiImageSelector(Context context){ private MultiImageSelector(Context context){
mContext = context;
} }
private MultiImageSelector(){}
@Deprecated
public static MultiImageSelector create(Context context){ public static MultiImageSelector create(Context context){
if(sSelector == null){ if(sSelector == null){
sSelector = new MultiImageSelector(context); sSelector = new MultiImageSelector(context);
...@@ -38,6 +41,13 @@ public class MultiImageSelector { ...@@ -38,6 +41,13 @@ public class MultiImageSelector {
return sSelector; return sSelector;
} }
public static MultiImageSelector create(){
if(sSelector == null){
sSelector = new MultiImageSelector();
}
return sSelector;
}
public MultiImageSelector showCamera(boolean show){ public MultiImageSelector showCamera(boolean show){
mShowCamera = show; mShowCamera = show;
return sSelector; return sSelector;
...@@ -64,32 +74,34 @@ public class MultiImageSelector { ...@@ -64,32 +74,34 @@ public class MultiImageSelector {
} }
public void start(Activity activity, int requestCode){ public void start(Activity activity, int requestCode){
if(hasPermission()) { final Context context = activity;
activity.startActivityForResult(createIntent(), requestCode); if(hasPermission(context)) {
activity.startActivityForResult(createIntent(context), requestCode);
}else{ }else{
Toast.makeText(mContext, R.string.mis_error_no_permission, Toast.LENGTH_SHORT).show(); Toast.makeText(context, R.string.mis_error_no_permission, Toast.LENGTH_SHORT).show();
} }
} }
public void start(Fragment fragment, int requestCode){ public void start(Fragment fragment, int requestCode){
if(hasPermission()) { final Context context = fragment.getContext();
fragment.startActivityForResult(createIntent(), requestCode); if(hasPermission(context)) {
fragment.startActivityForResult(createIntent(context), requestCode);
}else{ }else{
Toast.makeText(mContext, R.string.mis_error_no_permission, Toast.LENGTH_SHORT).show(); Toast.makeText(context, R.string.mis_error_no_permission, Toast.LENGTH_SHORT).show();
} }
} }
private boolean hasPermission(){ private boolean hasPermission(Context context){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
// Permission was added in API Level 16 // Permission was added in API Level 16
return ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE) return ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED; == PackageManager.PERMISSION_GRANTED;
} }
return true; return true;
} }
private Intent createIntent(){ private Intent createIntent(Context context){
Intent intent = new Intent(mContext, MultiImageSelectorActivity.class); Intent intent = new Intent(context, MultiImageSelectorActivity.class);
intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, mShowCamera); intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, mShowCamera);
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, mMaxCount); intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, mMaxCount);
if(mOriginData != null){ if(mOriginData != null){
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册