412 lines
18 KiB
Java
412 lines
18 KiB
Java
package cn.com.magnity.magnitycx;
|
|
|
|
import android.content.Intent;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.net.Uri;
|
|
import android.os.Bundle;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.v4.app.Fragment;
|
|
import android.support.v4.content.FileProvider;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.AbsListView;
|
|
import android.widget.AdapterView;
|
|
import android.widget.Button;
|
|
import android.widget.GridView;
|
|
import android.widget.ImageView;
|
|
import android.widget.ListAdapter;
|
|
import android.widget.Toast;
|
|
import cn.com.magnity.magnitycx.MediaActivity;
|
|
import cn.com.magnity.magnitycx.QueryDialogFragment;
|
|
import cn.com.magnity.magnitycx.sdk.DelegateMediaStatusChanged;
|
|
import cn.com.magnity.magnitycx.sdk.GlobalFunc;
|
|
import cn.com.magnity.magnitycx.sdk.MagParameter;
|
|
import cn.com.magnity.magnitycx.sdk.SharedPreferencesManager;
|
|
import com.baidu.mobstat.StatService;
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.Map;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class FragmentMedia extends Fragment implements MediaActivity.DelegateBackPressed, QueryDialogFragment.DelegateQueryResult, AbsListView.OnScrollListener {
|
|
private static final int MODE_NORMAL = 0;
|
|
private static final int MODE_SELECTION = 1;
|
|
private Button btnDelete_;
|
|
private Button btnSelectAll_;
|
|
private Button btnSocialShare_;
|
|
private ArrayList<String> fileNames_;
|
|
private int firstVisiblePos_;
|
|
private GridView gridView_;
|
|
private int index_;
|
|
private Map mapSelStatus_;
|
|
private MediaGridViewAdapter mediaGridViewAdapter_;
|
|
private MediaItemClickListener mediaItemClickListener_;
|
|
private MediaItemLongClickListener mediaItemLongClickListener_;
|
|
private MediaMenuClickListener mediaMenuClickListener_;
|
|
private ViewGroup menu_;
|
|
private int mode_ = 0;
|
|
private int visibleItemCount_;
|
|
|
|
@Override // android.support.v4.app.Fragment
|
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setRetainInstance(true);
|
|
this.fileNames_ = new ArrayList<>();
|
|
this.mediaMenuClickListener_ = new MediaMenuClickListener();
|
|
this.mediaItemClickListener_ = new MediaItemClickListener();
|
|
this.mediaItemLongClickListener_ = new MediaItemLongClickListener();
|
|
this.mapSelStatus_ = new HashMap();
|
|
}
|
|
|
|
@Override // android.support.v4.app.Fragment
|
|
@Nullable
|
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
View rootView = inflater.inflate(R.layout.fragment_media, (ViewGroup) null);
|
|
initViews(rootView);
|
|
return rootView;
|
|
}
|
|
|
|
private void initViews(View rootView) {
|
|
this.menu_ = (ViewGroup) rootView.findViewById(R.id.id_media_menu);
|
|
if (this.mode_ == 0) {
|
|
this.menu_.setVisibility(8);
|
|
} else if (this.mode_ == 1) {
|
|
this.menu_.setVisibility(0);
|
|
}
|
|
this.btnSocialShare_ = (Button) rootView.findViewById(R.id.id_btn_social_share);
|
|
this.btnSocialShare_.setOnClickListener(this.mediaMenuClickListener_);
|
|
this.btnDelete_ = (Button) rootView.findViewById(R.id.id_btn_delete);
|
|
this.btnDelete_.setOnClickListener(this.mediaMenuClickListener_);
|
|
this.btnSelectAll_ = (Button) rootView.findViewById(R.id.id_btn_select_all);
|
|
this.btnSelectAll_.setOnClickListener(this.mediaMenuClickListener_);
|
|
this.gridView_ = (GridView) rootView.findViewById(R.id.id_photowall);
|
|
this.gridView_.setOnScrollListener(this);
|
|
this.gridView_.setOnItemClickListener(this.mediaItemClickListener_);
|
|
this.gridView_.setOnItemLongClickListener(this.mediaItemLongClickListener_);
|
|
setAdapter();
|
|
}
|
|
|
|
private void setAdapter() {
|
|
updateFileList();
|
|
this.mediaGridViewAdapter_ = new MediaGridViewAdapter(getActivity(), this.gridView_, this.fileNames_, this.mapSelStatus_);
|
|
this.mediaGridViewAdapter_.setMode(this.mode_);
|
|
this.gridView_.setAdapter((ListAdapter) this.mediaGridViewAdapter_);
|
|
}
|
|
|
|
private void updateFileList() {
|
|
GlobalFunc globalFunc = MagApplication.globalFunc;
|
|
GlobalFunc.updateFileList(this.fileNames_);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void updateGridView() {
|
|
this.mediaGridViewAdapter_.notifyDataSetChanged();
|
|
this.gridView_.setSelection(this.index_);
|
|
this.gridView_.invalidateViews();
|
|
}
|
|
|
|
@Override // android.support.v4.app.Fragment
|
|
public void onResume() {
|
|
super.onResume();
|
|
updateFileList();
|
|
updateGridView();
|
|
StatService.onPageStart(getActivity(), "媒体");
|
|
if (this.mode_ == 0) {
|
|
getActivity().setTitle(String.format(getResources().getString(R.string.mediaTitle), Integer.valueOf(this.fileNames_.size())));
|
|
} else {
|
|
getActivity().setTitle(String.format(getResources().getString(R.string.mediaSelectedNum), Integer.valueOf(getSelectedItemCount())));
|
|
}
|
|
int num = MagApplication.magParameter.onceTipMediaLongClick;
|
|
int num2 = num - 1;
|
|
if (num != 0) {
|
|
MagApplication.magParameter.onceTipMediaLongClick = num2;
|
|
SharedPreferencesManager.putIntWithCommit(MagParameter.KEY_ONCETIPMEDIALONGCLICK, num2);
|
|
Toast.makeText(getContext(), R.string.onceTipMediaLongClick, 1).show();
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public int getSelectedItemCount() {
|
|
int num = 0;
|
|
for (Object value : this.mapSelStatus_.values()) {
|
|
if (((Boolean) value).booleanValue()) {
|
|
num++;
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
@Override // android.support.v4.app.Fragment
|
|
public void onPause() {
|
|
this.index_ = this.gridView_.getFirstVisiblePosition();
|
|
StatService.onPageEnd(getActivity(), "媒体");
|
|
super.onPause();
|
|
}
|
|
|
|
@Override // android.support.v4.app.Fragment
|
|
public void onDestroy() {
|
|
super.onDestroy();
|
|
this.mediaGridViewAdapter_.cancelAllTasks();
|
|
}
|
|
|
|
@Override // android.widget.AbsListView.OnScrollListener
|
|
public void onScrollStateChanged(AbsListView view, int scrollState) {
|
|
}
|
|
|
|
@Override // android.widget.AbsListView.OnScrollListener
|
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
|
this.firstVisiblePos_ = firstVisibleItem;
|
|
this.visibleItemCount_ = visibleItemCount;
|
|
if (this.visibleItemCount_ > 0) {
|
|
this.mediaGridViewAdapter_.loadBitmap(this.firstVisiblePos_, this.visibleItemCount_);
|
|
}
|
|
}
|
|
|
|
@Override // cn.com.magnity.magnitycx.MediaActivity.DelegateBackPressed
|
|
public boolean onActivityBackPressed() {
|
|
if (this.mode_ == 0) {
|
|
return true;
|
|
}
|
|
this.mode_ = 0;
|
|
unselectAllFiles();
|
|
this.mediaGridViewAdapter_.cancelAllTasks();
|
|
this.menu_.setVisibility(8);
|
|
if (!this.mapSelStatus_.isEmpty()) {
|
|
this.mapSelStatus_.clear();
|
|
}
|
|
if (getActivity() instanceof DelegateMediaStatusChanged) {
|
|
((DelegateMediaStatusChanged) getActivity()).onModeChanged(1, 0, this.fileNames_.size());
|
|
}
|
|
this.mediaGridViewAdapter_.setMode(0);
|
|
return false;
|
|
}
|
|
|
|
@Override // android.support.v4.app.Fragment
|
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
getActivity().setTitle(Integer.toString(this.fileNames_.size()) + getResources().getString(R.string.mediaTitle));
|
|
updateGridView();
|
|
}
|
|
|
|
@Override // cn.com.magnity.magnitycx.QueryDialogFragment.DelegateQueryResult
|
|
public void onQueryResult(int result) {
|
|
if (result == 1) {
|
|
deleteSelectedFiles();
|
|
updateButtons();
|
|
}
|
|
}
|
|
|
|
private void deleteSelectedFiles() {
|
|
Iterator iter = this.mapSelStatus_.entrySet().iterator();
|
|
while (iter.hasNext()) {
|
|
Map.Entry entry = (Map.Entry) iter.next();
|
|
boolean val = ((Boolean) entry.getValue()).booleanValue();
|
|
if (val) {
|
|
String pathName = MagApplication.magParameter.mediaDir + File.separator + ((String) entry.getKey());
|
|
File file = new File(pathName);
|
|
if (file != null && file.isFile()) {
|
|
if (file.delete()) {
|
|
iter.remove();
|
|
}
|
|
File file2 = new File(pathName.replace(".jpg", ".ddt"));
|
|
if (file2 != null && file2.isFile()) {
|
|
file2.delete();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
updateFileList();
|
|
updateGridView();
|
|
if (this.fileNames_.isEmpty()) {
|
|
onActivityBackPressed();
|
|
} else if (getActivity() instanceof DelegateMediaStatusChanged) {
|
|
((DelegateMediaStatusChanged) getActivity()).onSelChanged(0, this.fileNames_.size());
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void socialShare() {
|
|
Intent intent;
|
|
boolean hasVideo = false;
|
|
ArrayList<Uri> lst = new ArrayList<>();
|
|
for (Map.Entry entry : this.mapSelStatus_.entrySet()) {
|
|
boolean val = ((Boolean) entry.getValue()).booleanValue();
|
|
if (val) {
|
|
String pathName = MagApplication.magParameter.mediaDir + File.separator + ((String) entry.getKey());
|
|
File f = new File(pathName);
|
|
if (f != null && f.isFile()) {
|
|
GlobalFunc globalFunc = MagApplication.globalFunc;
|
|
int type = GlobalFunc.guessMediaTypeBySuffix(pathName);
|
|
if (type == 0) {
|
|
lst.add(FileProvider.getUriForFile(getContext(), "cn.com.magnity.magnitycx.fileprovider", f));
|
|
} else if (type == 1) {
|
|
lst.add(FileProvider.getUriForFile(getContext(), "cn.com.magnity.magnitycx.fileprovider", f));
|
|
hasVideo = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (lst.size() > 1) {
|
|
intent = new Intent("android.intent.action.SEND_MULTIPLE");
|
|
intent.putParcelableArrayListExtra("android.intent.extra.STREAM", lst);
|
|
} else if (lst.size() == 1) {
|
|
intent = new Intent("android.intent.action.SEND");
|
|
intent.putExtra("android.intent.extra.STREAM", lst.get(0));
|
|
} else {
|
|
return;
|
|
}
|
|
intent.setType(hasVideo ? "video/*" : "image/*");
|
|
intent.addFlags(1);
|
|
startActivity(Intent.createChooser(intent, getResources().getString(R.string.mediaSocialShare)));
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void selectAllFiles() {
|
|
Iterator<String> it = this.fileNames_.iterator();
|
|
while (it.hasNext()) {
|
|
String name = it.next();
|
|
this.mapSelStatus_.put(name, true);
|
|
}
|
|
if (getActivity() instanceof DelegateMediaStatusChanged) {
|
|
int num = this.fileNames_.size();
|
|
((DelegateMediaStatusChanged) getActivity()).onSelChanged(num, num);
|
|
}
|
|
updateGridView();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void unselectAllFiles() {
|
|
Iterator<String> it = this.fileNames_.iterator();
|
|
while (it.hasNext()) {
|
|
String name = it.next();
|
|
this.mapSelStatus_.put(name, false);
|
|
}
|
|
if (getActivity() instanceof DelegateMediaStatusChanged) {
|
|
((DelegateMediaStatusChanged) getActivity()).onSelChanged(0, this.fileNames_.size());
|
|
}
|
|
updateGridView();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public boolean isAllItemSelected() {
|
|
return this.fileNames_.size() == this.mapSelStatus_.size() && !this.mapSelStatus_.containsValue(false);
|
|
}
|
|
|
|
private boolean isNoItemSelected() {
|
|
return !this.mapSelStatus_.containsValue(true);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void updateButtons() {
|
|
if (isNoItemSelected()) {
|
|
this.btnSocialShare_.setEnabled(false);
|
|
this.btnDelete_.setEnabled(false);
|
|
this.btnSelectAll_.setText(R.string.mediaSelectAll);
|
|
Drawable drawable = getResources().getDrawable(R.drawable.button_unselect_all_select);
|
|
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
|
this.btnSelectAll_.setCompoundDrawables(null, drawable, null, null);
|
|
return;
|
|
}
|
|
this.btnSocialShare_.setEnabled(true);
|
|
this.btnDelete_.setEnabled(true);
|
|
if (isAllItemSelected()) {
|
|
this.btnSelectAll_.setText(R.string.mediaUnselectAll);
|
|
Drawable drawable2 = getResources().getDrawable(R.drawable.button_select_all_select);
|
|
drawable2.setBounds(0, 0, drawable2.getMinimumWidth(), drawable2.getMinimumHeight());
|
|
this.btnSelectAll_.setCompoundDrawables(null, drawable2, null, null);
|
|
return;
|
|
}
|
|
this.btnSelectAll_.setText(R.string.mediaSelectAll);
|
|
Drawable drawable3 = getResources().getDrawable(R.drawable.button_unselect_all_select);
|
|
drawable3.setBounds(0, 0, drawable3.getMinimumWidth(), drawable3.getMinimumHeight());
|
|
this.btnSelectAll_.setCompoundDrawables(null, drawable3, null, null);
|
|
}
|
|
|
|
private class MediaMenuClickListener implements View.OnClickListener {
|
|
private MediaMenuClickListener() {
|
|
}
|
|
|
|
@Override // android.view.View.OnClickListener
|
|
public void onClick(View v) {
|
|
switch (v.getId()) {
|
|
case R.id.id_btn_social_share /* 2131624072 */:
|
|
FragmentMedia.this.socialShare();
|
|
break;
|
|
case R.id.id_btn_delete /* 2131624143 */:
|
|
QueryDialogFragment dlg = QueryDialogFragment.newInstance(R.layout.dialog_fragment_query_delete_media);
|
|
if (dlg != null) {
|
|
dlg.show(FragmentMedia.this.getActivity().getSupportFragmentManager(), "deleteMedia");
|
|
break;
|
|
}
|
|
break;
|
|
case R.id.id_btn_select_all /* 2131624144 */:
|
|
if (FragmentMedia.this.isAllItemSelected()) {
|
|
FragmentMedia.this.unselectAllFiles();
|
|
} else {
|
|
FragmentMedia.this.selectAllFiles();
|
|
}
|
|
FragmentMedia.this.updateButtons();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private class MediaItemClickListener implements AdapterView.OnItemClickListener {
|
|
private MediaItemClickListener() {
|
|
}
|
|
|
|
@Override // android.widget.AdapterView.OnItemClickListener
|
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
if (FragmentMedia.this.mode_ != 0) {
|
|
String name = (String) FragmentMedia.this.fileNames_.get(position);
|
|
ImageView v = (ImageView) view.findViewById(R.id.id_photo_selected);
|
|
ImageView vimg = (ImageView) view.findViewById(R.id.id_wallphoto);
|
|
Object val = FragmentMedia.this.mapSelStatus_.get(name);
|
|
if (val == null || !((Boolean) val).booleanValue()) {
|
|
v.setImageResource(R.mipmap.media_selected);
|
|
vimg.setAlpha(0.6f);
|
|
FragmentMedia.this.mapSelStatus_.put(name, true);
|
|
} else {
|
|
v.setImageResource(R.mipmap.media_unselected);
|
|
vimg.setAlpha(1.0f);
|
|
FragmentMedia.this.mapSelStatus_.put(name, false);
|
|
}
|
|
if (FragmentMedia.this.getActivity() instanceof DelegateMediaStatusChanged) {
|
|
((DelegateMediaStatusChanged) FragmentMedia.this.getActivity()).onSelChanged(FragmentMedia.this.getSelectedItemCount(), FragmentMedia.this.fileNames_.size());
|
|
}
|
|
FragmentMedia.this.updateButtons();
|
|
return;
|
|
}
|
|
Intent intent = new Intent(FragmentMedia.this.getActivity(), (Class<?>) MediaSingleActivity.class);
|
|
intent.putExtra(MediaSingleActivity.MEDIAWINDOWFLAG, 1);
|
|
intent.putExtra(MediaSingleActivity.MEDIAINDEX, position);
|
|
intent.putStringArrayListExtra(MediaSingleActivity.MEDIANAMELIST, FragmentMedia.this.fileNames_);
|
|
FragmentMedia.this.startActivityForResult(intent, 0);
|
|
}
|
|
}
|
|
|
|
private class MediaItemLongClickListener implements AdapterView.OnItemLongClickListener {
|
|
private MediaItemLongClickListener() {
|
|
}
|
|
|
|
@Override // android.widget.AdapterView.OnItemLongClickListener
|
|
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
|
|
if (FragmentMedia.this.mode_ != 1) {
|
|
String name = (String) FragmentMedia.this.fileNames_.get(position);
|
|
FragmentMedia.this.mapSelStatus_.put(name, true);
|
|
FragmentMedia.this.updateButtons();
|
|
FragmentMedia.this.menu_.setVisibility(0);
|
|
FragmentMedia.this.mode_ = 1;
|
|
if (FragmentMedia.this.getActivity() instanceof DelegateMediaStatusChanged) {
|
|
((DelegateMediaStatusChanged) FragmentMedia.this.getActivity()).onModeChanged(0, 1, FragmentMedia.this.fileNames_.size());
|
|
}
|
|
FragmentMedia.this.mediaGridViewAdapter_.setMode(1);
|
|
FragmentMedia.this.updateGridView();
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|