use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class CPHelper method getAllMediaFromMediaStore.
private static Observable<Media> getAllMediaFromMediaStore(Context context, SortingMode sortingMode, SortingOrder sortingOrder) {
Query.Builder query = new Query.Builder().uri(MediaStore.Files.getContentUri("external")).projection(Media.getProjection()).sort(sortingMode.getMediaColumn()).ascending(sortingOrder.isAscending());
if (Prefs.showVideos()) {
query.selection(String.format("(%s=? or %s=?)", MediaStore.Files.FileColumns.MEDIA_TYPE, MediaStore.Files.FileColumns.MEDIA_TYPE));
query.args(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE, MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO);
} else {
query.selection(String.format("%s=?", MediaStore.Files.FileColumns.MEDIA_TYPE));
query.args(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE);
}
return QueryUtils.query(query.build(), context.getContentResolver(), new Media());
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class SingleMediaActivity method loadAlbumsLazy.
private void loadAlbumsLazy(Intent intent) {
album = intent.getParcelableExtra(EXTRA_ARGS_ALBUM);
// position = intent.getIntExtra(EXTRA_ARGS_POSITION, 0);
Media m = intent.getParcelableExtra(EXTRA_ARGS_MEDIA);
media = new ArrayList<>();
media.add(m);
position = 0;
ArrayList<Media> list = new ArrayList<>();
CPHelper.getMedia(getApplicationContext(), album).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).filter(media -> MediaFilter.getFilter(album.filterMode()).accept(media) && !media.equals(m)).subscribe(ma -> {
int i = Collections.binarySearch(list, ma, MediaComparators.getComparator(album.settings));
if (i < 0)
i = ~i;
list.add(i, ma);
}, throwable -> {
Log.wtf("asd", throwable);
}, () -> {
int i = Collections.binarySearch(list, m, MediaComparators.getComparator(album.settings));
if (i < 0)
i = ~i;
list.add(i, m);
media.clear();
media.addAll(list);
adapter.notifyDataSetChanged();
position = i;
mViewPager.setCurrentItem(position);
updatePageTitle(position);
});
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class SingleMediaActivity method loadUri.
private void loadUri(Uri uri) {
album = new Album(uri.toString(), uri.getPath());
album.settings = AlbumSettings.getDefaults();
try {
InputStream inputStream = getContentResolver().openInputStream(uri);
if (inputStream != null)
inputStream.close();
} catch (Exception ex) {
boolean showEasterEgg = Prefs.showEasterEgg();
((TextView) findViewById(R.id.nothing_to_show_text_emoji_easter_egg)).setText(R.string.error_occured_open_media);
findViewById(R.id.nothing_to_show_placeholder).setVisibility(!showEasterEgg ? View.VISIBLE : View.GONE);
findViewById(R.id.ll_emoji_easter_egg).setVisibility(showEasterEgg ? View.VISIBLE : View.GONE);
}
media = new ArrayList<>(Collections.singletonList(new Media(uri)));
position = 0;
customUri = true;
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class MediaAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
Media f = media.get(position);
// holder.path.setTag(f);
holder.icon.setVisibility(View.GONE);
holder.layout.setBackgroundColor(getThemeHelper().getPrimaryColor());
holder.gifIcon.setVisibility(f.isGif() ? View.VISIBLE : View.GONE);
RequestOptions options = new RequestOptions().signature(f.getSignature()).format(DecodeFormat.PREFER_RGB_565).centerCrop().placeholder(placeholder).diskCacheStrategy(DiskCacheStrategy.RESOURCE);
Glide.with(holder.imageView.getContext()).load(f.getUri()).apply(options).thumbnail(0.5f).into(holder.imageView);
if (f.isVideo()) {
holder.icon.setVisibility(View.VISIBLE);
holder.path.setVisibility(View.VISIBLE);
holder.path.setText(f.getName());
/*holder.path.setTextColor(ContextCompat.getColor(holder.path.getContext(), R.color.md_dark_primary_text));
holder.path.setBackgroundColor(
ColorPalette.getTransparentColor(
ContextCompat.getColor(holder.path.getContext(), R.color.md_black_1000), 100));*/
// ANIMS
holder.icon.animate().alpha(1).setDuration(250);
holder.path.animate().alpha(1).setDuration(250);
} else {
holder.icon.setVisibility(View.GONE);
holder.path.setVisibility(View.GONE);
holder.icon.animate().alpha(0).setDuration(250);
holder.path.animate().alpha(0).setDuration(250);
}
if (f.isSelected()) {
holder.icon.setIcon(CommunityMaterial.Icon.cmd_check);
holder.icon.setVisibility(View.VISIBLE);
holder.imageView.setColorFilter(0x88000000, PorterDuff.Mode.SRC_ATOP);
holder.layout.setPadding(15, 15, 15, 15);
// ANIMS
holder.icon.animate().alpha(1).setDuration(250);
} else {
holder.imageView.clearColorFilter();
holder.layout.setPadding(0, 0, 0, 0);
}
holder.layout.setOnClickListener(v -> {
if (selecting()) {
notifySelected(f.toggleSelected());
notifyItemChanged(holder.getAdapterPosition());
} else
actionsListener.onItemSelected(holder.getAdapterPosition());
});
holder.layout.setOnLongClickListener(v -> {
if (!selecting()) {
// If it is the first long press
notifySelected(f.toggleSelected());
notifyItemChanged(holder.getAdapterPosition());
} else {
selectAllUpTo(f);
}
return true;
});
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class MainActivity method onOptionsItemSelected.
//endregion
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.select_all:
if (albumsMode) {
if (getAlbums().getSelectedCount() == albumsAdapter.getItemCount()) {
editMode = false;
getAlbums().clearSelectedAlbums();
} else
getAlbums().selectAllAlbums();
albumsAdapter.notifyDataSetChanged();
} else {
if (getAlbum().getSelectedCount() == mediaAdapter.getItemCount()) {
editMode = false;
getAlbum().clearSelectedPhotos();
} else
getAlbum().selectAllPhotos();
mediaAdapter.notifyDataSetChanged();
}
invalidateOptionsMenu();
return true;
case R.id.set_pin_album:
getAlbums().getSelectedAlbum(0).settings.togglePin(getApplicationContext());
getAlbums().sortAlbums(getApplicationContext());
getAlbums().clearSelectedAlbums();
albumsAdapter.swapDataSet(getAlbums().dispAlbums);
invalidateOptionsMenu();
return true;
case R.id.settings:
startActivity(new Intent(MainActivity.this, SettingsActivity.class));
return true;
case R.id.installShortcut:
getAlbums().installShortcutForSelectedAlbums(this.getApplicationContext());
finishEditMode();
return true;
case R.id.hideAlbumButton:
final AlertDialog.Builder hideDialogBuilder = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
AlertDialogsHelper.getTextDialog(MainActivity.this, hideDialogBuilder, hidden ? R.string.unhide : R.string.hide, hidden ? R.string.unhide_album_message : R.string.hide_album_message);
hideDialogBuilder.setPositiveButton(getString(hidden ? R.string.unhide : R.string.hide).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (albumsMode) {
if (hidden)
getAlbums().unHideSelectedAlbums(getApplicationContext());
else
getAlbums().hideSelectedAlbums(getApplicationContext());
albumsAdapter.notifyDataSetChanged();
invalidateOptionsMenu();
} else {
if (hidden)
getAlbums().unHideAlbum(getAlbum().getPath(), getApplicationContext());
else
getAlbums().hideAlbum(getAlbum().getPath(), getApplicationContext());
displayAlbums(true);
}
}
});
if (!hidden) {
hideDialogBuilder.setNeutralButton(this.getString(R.string.exclude).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (albumsMode) {
getAlbums().excludeSelectedAlbums(getApplicationContext());
albumsAdapter.notifyDataSetChanged();
invalidateOptionsMenu();
} else {
customAlbumsHelper.excludeAlbum(getAlbum().getPath());
displayAlbums(true);
}
}
});
}
hideDialogBuilder.setNegativeButton(this.getString(R.string.cancel).toUpperCase(), null);
hideDialogBuilder.show();
return true;
case R.id.delete_action:
class DeletePhotos extends AsyncTask<String, Integer, Boolean> {
@Override
protected void onPreExecute() {
swipeRefreshLayout.setRefreshing(true);
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... arg0) {
if (albumsMode)
return getAlbums().deleteSelectedAlbums(MainActivity.this);
else {
if (editMode)
return getAlbum().deleteSelectedMedia(getApplicationContext());
else {
boolean succ = getAlbums().deleteAlbum(getAlbum(), getApplicationContext());
getAlbum().getMedia().clear();
return succ;
}
}
}
@Override
protected void onPostExecute(Boolean result) {
if (result) {
if (albumsMode) {
getAlbums().clearSelectedAlbums();
albumsAdapter.notifyDataSetChanged();
} else {
if (getAlbum().getMedia().size() == 0) {
getAlbums().removeCurrentAlbum();
albumsAdapter.notifyDataSetChanged();
displayAlbums();
} else
mediaAdapter.swapDataSet(getAlbum().getMedia());
}
} else
requestSdCardPermissions();
invalidateOptionsMenu();
checkNothing();
swipeRefreshLayout.setRefreshing(false);
}
}
AlertDialog.Builder deleteDialog = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
AlertDialogsHelper.getTextDialog(this, deleteDialog, R.string.delete, albumsMode || !editMode ? R.string.delete_album_message : R.string.delete_photos_message);
deleteDialog.setNegativeButton(this.getString(R.string.cancel).toUpperCase(), null);
deleteDialog.setPositiveButton(this.getString(R.string.delete).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if (securityObj.isActiveSecurity() && securityObj.isPasswordOnDelete()) {
AlertDialog.Builder passwordDialogBuilder = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
final EditText editTextPassword = securityObj.getInsertPasswordDialog(MainActivity.this, passwordDialogBuilder);
passwordDialogBuilder.setNegativeButton(getString(R.string.cancel).toUpperCase(), null);
passwordDialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//This should br empty it will be overwrite later
//to avoid dismiss of the dialog on wrong password
}
});
final AlertDialog passwordDialog = passwordDialogBuilder.create();
passwordDialog.show();
passwordDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (securityObj.checkPassword(editTextPassword.getText().toString())) {
passwordDialog.dismiss();
new DeletePhotos().execute();
} else {
Toast.makeText(getApplicationContext(), R.string.wrong_password, Toast.LENGTH_SHORT).show();
editTextPassword.getText().clear();
editTextPassword.requestFocus();
}
}
});
} else
new DeletePhotos().execute();
}
});
deleteDialog.show();
return true;
case R.id.excludeAlbumButton:
final AlertDialog.Builder excludeDialogBuilder = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
final View excludeDialogLayout = getLayoutInflater().inflate(R.layout.dialog_exclude, null);
TextView textViewExcludeTitle = (TextView) excludeDialogLayout.findViewById(R.id.text_dialog_title);
TextView textViewExcludeMessage = (TextView) excludeDialogLayout.findViewById(R.id.text_dialog_message);
final Spinner spinnerParents = (Spinner) excludeDialogLayout.findViewById(R.id.parents_folder);
spinnerParents.getBackground().setColorFilter(getIconColor(), PorterDuff.Mode.SRC_ATOP);
((CardView) excludeDialogLayout.findViewById(R.id.message_card)).setCardBackgroundColor(getCardBackgroundColor());
textViewExcludeTitle.setBackgroundColor(getPrimaryColor());
textViewExcludeTitle.setText(getString(R.string.exclude));
if ((albumsMode && getAlbums().getSelectedCount() > 1)) {
textViewExcludeMessage.setText(R.string.exclude_albums_message);
spinnerParents.setVisibility(View.GONE);
} else {
textViewExcludeMessage.setText(R.string.exclude_album_message);
spinnerParents.setAdapter(getSpinnerAdapter(albumsMode ? getAlbums().getSelectedAlbum(0).getParentsFolders() : getAlbum().getParentsFolders()));
}
textViewExcludeMessage.setTextColor(getTextColor());
excludeDialogBuilder.setView(excludeDialogLayout);
excludeDialogBuilder.setPositiveButton(this.getString(R.string.exclude).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if ((albumsMode && getAlbums().getSelectedCount() > 1)) {
getAlbums().excludeSelectedAlbums(getApplicationContext());
albumsAdapter.notifyDataSetChanged();
invalidateOptionsMenu();
} else {
customAlbumsHelper.excludeAlbum(spinnerParents.getSelectedItem().toString());
finishEditMode();
displayAlbums(true);
}
}
});
excludeDialogBuilder.setNegativeButton(this.getString(R.string.cancel).toUpperCase(), null);
excludeDialogBuilder.show();
return true;
case R.id.sharePhotos:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.sent_to_action));
ArrayList<Uri> files = new ArrayList<Uri>();
for (Media f : getAlbum().getSelectedMedia()) files.add(f.getUri());
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files);
intent.setType(StringUtils.getGenericMIME(getAlbum().getSelectedMedia(0).getMimeType()));
finishEditMode();
startActivity(Intent.createChooser(intent, getResources().getText(R.string.send_to)));
return true;
case R.id.all_media_filter:
if (!albumsMode) {
getAlbum().filterMedias(getApplicationContext(), FilterMode.ALL);
mediaAdapter.swapDataSet(getAlbum().getMedia());
item.setChecked(true);
checkNothing();
}
return true;
case R.id.video_media_filter:
if (!albumsMode) {
getAlbum().filterMedias(getApplicationContext(), FilterMode.VIDEO);
mediaAdapter.swapDataSet(getAlbum().getMedia());
item.setChecked(true);
checkNothing();
}
return true;
case R.id.image_media_filter:
if (!albumsMode) {
getAlbum().filterMedias(getApplicationContext(), FilterMode.IMAGES);
mediaAdapter.swapDataSet(getAlbum().getMedia());
item.setChecked(true);
checkNothing();
}
return true;
case R.id.gifs_media_filter:
if (!albumsMode) {
getAlbum().filterMedias(getApplicationContext(), FilterMode.GIF);
mediaAdapter.swapDataSet(getAlbum().getMedia());
item.setChecked(true);
checkNothing();
}
return true;
case R.id.name_sort_action:
if (albumsMode) {
getAlbums().setDefaultSortingMode(SortingMode.NAME);
getAlbums().sortAlbums(getApplicationContext());
albumsAdapter.swapDataSet(getAlbums().dispAlbums);
} else {
getAlbum().setDefaultSortingMode(getApplicationContext(), SortingMode.NAME);
getAlbum().sortPhotos();
mediaAdapter.swapDataSet(getAlbum().getMedia());
}
item.setChecked(true);
return true;
case R.id.date_taken_sort_action:
if (albumsMode) {
getAlbums().setDefaultSortingMode(SortingMode.DATE);
getAlbums().sortAlbums(getApplicationContext());
albumsAdapter.swapDataSet(getAlbums().dispAlbums);
} else {
getAlbum().setDefaultSortingMode(getApplicationContext(), SortingMode.DATE);
getAlbum().sortPhotos();
mediaAdapter.swapDataSet(getAlbum().getMedia());
}
item.setChecked(true);
return true;
case R.id.size_sort_action:
if (albumsMode) {
getAlbums().setDefaultSortingMode(SortingMode.SIZE);
getAlbums().sortAlbums(getApplicationContext());
albumsAdapter.swapDataSet(getAlbums().dispAlbums);
} else {
getAlbum().setDefaultSortingMode(getApplicationContext(), SortingMode.SIZE);
getAlbum().sortPhotos();
mediaAdapter.swapDataSet(getAlbum().getMedia());
}
item.setChecked(true);
return true;
case R.id.type_sort_action:
if (!albumsMode) {
getAlbum().setDefaultSortingMode(getApplicationContext(), SortingMode.TYPE);
getAlbum().sortPhotos();
mediaAdapter.swapDataSet(getAlbum().getMedia());
item.setChecked(true);
}
return true;
case R.id.numeric_sort_action:
if (albumsMode) {
getAlbums().setDefaultSortingMode(SortingMode.NUMERIC);
getAlbums().sortAlbums(getApplicationContext());
albumsAdapter.swapDataSet(getAlbums().dispAlbums);
} else {
getAlbum().setDefaultSortingMode(getApplicationContext(), SortingMode.NUMERIC);
getAlbum().sortPhotos();
mediaAdapter.swapDataSet(getAlbum().getMedia());
}
item.setChecked(true);
return true;
case R.id.ascending_sort_action:
if (albumsMode) {
getAlbums().setDefaultSortingAscending(item.isChecked() ? SortingOrder.DESCENDING : SortingOrder.ASCENDING);
getAlbums().sortAlbums(getApplicationContext());
albumsAdapter.swapDataSet(getAlbums().dispAlbums);
} else {
getAlbum().setDefaultSortingAscending(getApplicationContext(), item.isChecked() ? SortingOrder.DESCENDING : SortingOrder.ASCENDING);
getAlbum().sortPhotos();
mediaAdapter.swapDataSet(getAlbum().getMedia());
}
item.setChecked(!item.isChecked());
return true;
//region Affix
case R.id.affixPhoto:
//region Async MediaAffix
class affixMedia extends AsyncTask<Affix.Options, Integer, Void> {
private AlertDialog dialog;
@Override
protected void onPreExecute() {
AlertDialog.Builder progressDialog = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
dialog = AlertDialogsHelper.getProgressDialog(MainActivity.this, progressDialog, getString(R.string.affix), getString(R.string.affix_text));
dialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Affix.Options... arg0) {
ArrayList<Bitmap> bitmapArray = new ArrayList<Bitmap>();
for (int i = 0; i < getAlbum().getSelectedCount(); i++) {
if (!getAlbum().getSelectedMedia(i).isVideo())
bitmapArray.add(getAlbum().getSelectedMedia(i).getBitmap());
}
if (bitmapArray.size() > 1)
Affix.AffixBitmapList(getApplicationContext(), bitmapArray, arg0[0]);
else
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), R.string.affix_error, Toast.LENGTH_SHORT).show();
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
editMode = false;
getAlbum().clearSelectedPhotos();
dialog.dismiss();
invalidateOptionsMenu();
mediaAdapter.notifyDataSetChanged();
new PreparePhotosTask().execute();
}
}
//endregion
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
final View dialogLayout = getLayoutInflater().inflate(R.layout.dialog_affix, null);
dialogLayout.findViewById(R.id.affix_title).setBackgroundColor(getPrimaryColor());
((CardView) dialogLayout.findViewById(R.id.affix_card)).setCardBackgroundColor(getCardBackgroundColor());
//ITEMS
final SwitchCompat swVertical = (SwitchCompat) dialogLayout.findViewById(R.id.affix_vertical_switch);
final SwitchCompat swSaveHere = (SwitchCompat) dialogLayout.findViewById(R.id.save_here_switch);
final RadioGroup radioFormatGroup = (RadioGroup) dialogLayout.findViewById(R.id.radio_format);
final TextView txtQuality = (TextView) dialogLayout.findViewById(R.id.affix_quality_title);
final SeekBar seekQuality = (SeekBar) dialogLayout.findViewById(R.id.seek_bar_quality);
//region THEME STUFF
setScrollViewColor((ScrollView) dialogLayout.findViewById(R.id.affix_scrollView));
/** TextViews **/
int color = getTextColor();
((TextView) dialogLayout.findViewById(R.id.affix_vertical_title)).setTextColor(color);
((TextView) dialogLayout.findViewById(R.id.compression_settings_title)).setTextColor(color);
((TextView) dialogLayout.findViewById(R.id.save_here_title)).setTextColor(color);
/** Sub TextViews **/
color = getTextColor();
((TextView) dialogLayout.findViewById(R.id.save_here_sub)).setTextColor(color);
((TextView) dialogLayout.findViewById(R.id.affix_vertical_sub)).setTextColor(color);
((TextView) dialogLayout.findViewById(R.id.affix_format_sub)).setTextColor(color);
txtQuality.setTextColor(color);
/** Icons **/
color = getIconColor();
((IconicsImageView) dialogLayout.findViewById(R.id.affix_quality_icon)).setColor(color);
((IconicsImageView) dialogLayout.findViewById(R.id.affix_format_icon)).setColor(color);
((IconicsImageView) dialogLayout.findViewById(R.id.affix_vertical_icon)).setColor(color);
((IconicsImageView) dialogLayout.findViewById(R.id.save_here_icon)).setColor(color);
seekQuality.getProgressDrawable().setColorFilter(new PorterDuffColorFilter(getAccentColor(), PorterDuff.Mode.SRC_IN));
seekQuality.getThumb().setColorFilter(new PorterDuffColorFilter(getAccentColor(), PorterDuff.Mode.SRC_IN));
updateRadioButtonColor((RadioButton) dialogLayout.findViewById(R.id.radio_jpeg));
updateRadioButtonColor((RadioButton) dialogLayout.findViewById(R.id.radio_png));
updateRadioButtonColor((RadioButton) dialogLayout.findViewById(R.id.radio_webp));
updateSwitchColor(swVertical, getAccentColor());
updateSwitchColor(swSaveHere, getAccentColor());
//endregion
seekQuality.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
txtQuality.setText(Html.fromHtml(String.format(Locale.getDefault(), "%s <b>%d</b>", getString(R.string.quality), progress)));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
//DEFAULT
seekQuality.setProgress(90);
swVertical.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
updateSwitchColor(swVertical, getAccentColor());
}
});
swSaveHere.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
updateSwitchColor(swSaveHere, getAccentColor());
}
});
builder.setView(dialogLayout);
builder.setPositiveButton(this.getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Bitmap.CompressFormat compressFormat;
switch(radioFormatGroup.getCheckedRadioButtonId()) {
case R.id.radio_jpeg:
default:
compressFormat = Bitmap.CompressFormat.JPEG;
break;
case R.id.radio_png:
compressFormat = Bitmap.CompressFormat.PNG;
break;
case R.id.radio_webp:
compressFormat = Bitmap.CompressFormat.WEBP;
break;
}
Affix.Options options = new Affix.Options(swSaveHere.isChecked() ? getAlbum().getPath() : Affix.getDefaultDirectoryPath(), compressFormat, seekQuality.getProgress(), swVertical.isChecked());
new affixMedia().execute(options);
}
});
builder.setNegativeButton(this.getString(R.string.cancel).toUpperCase(), null);
builder.show();
return true;
case R.id.action_move:
bottomSheetDialogFragment = new SelectAlbumBottomSheet();
bottomSheetDialogFragment.setTitle(getString(R.string.move_to));
bottomSheetDialogFragment.setSelectAlbumInterface(new SelectAlbumBottomSheet.SelectAlbumInterface() {
@Override
public void folderSelected(String path) {
swipeRefreshLayout.setRefreshing(true);
if (getAlbum().moveSelectedMedia(getApplicationContext(), path) > 0) {
if (getAlbum().getMedia().size() == 0) {
getAlbums().removeCurrentAlbum();
albumsAdapter.notifyDataSetChanged();
displayAlbums();
}
mediaAdapter.swapDataSet(getAlbum().getMedia());
finishEditMode();
invalidateOptionsMenu();
} else
requestSdCardPermissions();
swipeRefreshLayout.setRefreshing(false);
bottomSheetDialogFragment.dismiss();
}
});
bottomSheetDialogFragment.show(getSupportFragmentManager(), bottomSheetDialogFragment.getTag());
return true;
case R.id.action_copy:
bottomSheetDialogFragment = new SelectAlbumBottomSheet();
bottomSheetDialogFragment.setTitle(getString(R.string.copy_to));
bottomSheetDialogFragment.setSelectAlbumInterface(new SelectAlbumBottomSheet.SelectAlbumInterface() {
@Override
public void folderSelected(String path) {
boolean success = getAlbum().copySelectedPhotos(getApplicationContext(), path);
finishEditMode();
bottomSheetDialogFragment.dismiss();
if (!success)
requestSdCardPermissions();
}
});
bottomSheetDialogFragment.show(getSupportFragmentManager(), bottomSheetDialogFragment.getTag());
return true;
case R.id.renameAlbum:
AlertDialog.Builder renameDialogBuilder = new AlertDialog.Builder(MainActivity.this, getDialogStyle());
final EditText editTextNewName = new EditText(getApplicationContext());
editTextNewName.setText(albumsMode ? getAlbums().getSelectedAlbum(0).getName() : getAlbum().getName());
AlertDialogsHelper.getInsertTextDialog(MainActivity.this, renameDialogBuilder, editTextNewName, R.string.rename_album);
renameDialogBuilder.setNegativeButton(getString(R.string.cancel).toUpperCase(), null);
renameDialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//This should br empty it will be overwrite later
//to avoid dismiss of the dialog
}
});
final AlertDialog renameDialog = renameDialogBuilder.create();
renameDialog.show();
renameDialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View dialog) {
if (editTextNewName.length() != 0) {
swipeRefreshLayout.setRefreshing(true);
boolean success;
if (albumsMode) {
int index = getAlbums().dispAlbums.indexOf(getAlbums().getSelectedAlbum(0));
getAlbums().getAlbum(index).updatePhotos(getApplicationContext());
success = getAlbums().getAlbum(index).renameAlbum(getApplicationContext(), editTextNewName.getText().toString());
albumsAdapter.notifyItemChanged(index);
} else {
success = getAlbum().renameAlbum(getApplicationContext(), editTextNewName.getText().toString());
toolbar.setTitle(getAlbum().getName());
mediaAdapter.notifyDataSetChanged();
}
renameDialog.dismiss();
if (!success)
requestSdCardPermissions();
swipeRefreshLayout.setRefreshing(false);
} else {
StringUtils.showToast(getApplicationContext(), getString(R.string.insert_something));
editTextNewName.requestFocus();
}
}
});
return true;
case R.id.clear_album_preview:
if (!albumsMode) {
getAlbum().removeCoverAlbum(getApplicationContext());
}
return true;
case R.id.setAsAlbumPreview:
if (!albumsMode) {
getAlbum().setSelectedPhotoAsPreview(getApplicationContext());
finishEditMode();
}
return true;
default:
// Invoke the superclass to handle it.
return super.onOptionsItemSelected(item);
}
}
Aggregations