convert ChangeSortingDialog to kotlin

This commit is contained in:
tibbi 2016-11-13 21:43:56 +01:00
parent fd0bf3fce4
commit 8cc9c27416
5 changed files with 103 additions and 115 deletions

View file

@ -32,7 +32,7 @@ import com.simplemobiletools.gallery.R;
import com.simplemobiletools.gallery.Utils; import com.simplemobiletools.gallery.Utils;
import com.simplemobiletools.gallery.adapters.DirectoryAdapter; import com.simplemobiletools.gallery.adapters.DirectoryAdapter;
import com.simplemobiletools.gallery.asynctasks.GetDirectoriesAsynctask; import com.simplemobiletools.gallery.asynctasks.GetDirectoriesAsynctask;
import com.simplemobiletools.gallery.dialogs.ChangeSorting; import com.simplemobiletools.gallery.dialogs.ChangeSortingDialog;
import com.simplemobiletools.gallery.dialogs.CopyDialog; import com.simplemobiletools.gallery.dialogs.CopyDialog;
import com.simplemobiletools.gallery.dialogs.RenameDirectoryDialog; import com.simplemobiletools.gallery.dialogs.RenameDirectoryDialog;
import com.simplemobiletools.gallery.models.Directory; import com.simplemobiletools.gallery.models.Directory;
@ -51,7 +51,7 @@ import butterknife.ButterKnife;
public class MainActivity extends SimpleActivity public class MainActivity extends SimpleActivity
implements AdapterView.OnItemClickListener, GridView.MultiChoiceModeListener, GridView.OnTouchListener, implements AdapterView.OnItemClickListener, GridView.MultiChoiceModeListener, GridView.OnTouchListener,
SwipeRefreshLayout.OnRefreshListener, ChangeSorting.ChangeDialogListener, GetDirectoriesAsynctask.GetDirectoriesListener { SwipeRefreshLayout.OnRefreshListener, GetDirectoriesAsynctask.GetDirectoriesListener {
@BindView(R.id.directories_grid) GridView mGridView; @BindView(R.id.directories_grid) GridView mGridView;
@BindView(R.id.directories_holder) SwipeRefreshLayout mSwipeRefreshLayout; @BindView(R.id.directories_holder) SwipeRefreshLayout mSwipeRefreshLayout;
@ -180,7 +180,12 @@ public class MainActivity extends SimpleActivity
} }
private void showSortingDialog() { private void showSortingDialog() {
new ChangeSorting(this, true); new ChangeSortingDialog(this, true, new ChangeSortingDialog.OnChangeSortingListener() {
@Override
public void sortingChanged() {
getDirectories();
}
});
} }
private void prepareForDeleting() { private void prepareForDeleting() {
@ -585,11 +590,6 @@ public class MainActivity extends SimpleActivity
mSwipeRefreshLayout.setRefreshing(false); mSwipeRefreshLayout.setRefreshing(false);
} }
@Override
public void sortingDialogClosed() {
getDirectories();
}
@Override @Override
public void gotDirectories(@NotNull ArrayList<Directory> dirs) { public void gotDirectories(@NotNull ArrayList<Directory> dirs) {
mIsGettingDirs = false; mIsGettingDirs = false;

View file

@ -35,7 +35,7 @@ import com.simplemobiletools.gallery.Constants;
import com.simplemobiletools.gallery.R; import com.simplemobiletools.gallery.R;
import com.simplemobiletools.gallery.Utils; import com.simplemobiletools.gallery.Utils;
import com.simplemobiletools.gallery.adapters.MediaAdapter; import com.simplemobiletools.gallery.adapters.MediaAdapter;
import com.simplemobiletools.gallery.dialogs.ChangeSorting; import com.simplemobiletools.gallery.dialogs.ChangeSortingDialog;
import com.simplemobiletools.gallery.dialogs.CopyDialog; import com.simplemobiletools.gallery.dialogs.CopyDialog;
import com.simplemobiletools.gallery.models.Medium; import com.simplemobiletools.gallery.models.Medium;
@ -51,7 +51,7 @@ import butterknife.ButterKnife;
public class MediaActivity extends SimpleActivity public class MediaActivity extends SimpleActivity
implements AdapterView.OnItemClickListener, GridView.MultiChoiceModeListener, GridView.OnTouchListener, implements AdapterView.OnItemClickListener, GridView.MultiChoiceModeListener, GridView.OnTouchListener,
SwipeRefreshLayout.OnRefreshListener, ChangeSorting.ChangeDialogListener { SwipeRefreshLayout.OnRefreshListener {
private static final String TAG = MediaActivity.class.getSimpleName(); private static final String TAG = MediaActivity.class.getSimpleName();
@BindView(R.id.media_grid) GridView mGridView; @BindView(R.id.media_grid) GridView mGridView;
@BindView(R.id.media_holder) SwipeRefreshLayout mSwipeRefreshLayout; @BindView(R.id.media_holder) SwipeRefreshLayout mSwipeRefreshLayout;
@ -168,7 +168,12 @@ public class MediaActivity extends SimpleActivity
} }
private void showSortingDialog() { private void showSortingDialog() {
new ChangeSorting(this, false); new ChangeSortingDialog(this, false, new ChangeSortingDialog.OnChangeSortingListener() {
@Override
public void sortingChanged() {
initializeGallery();
}
});
} }
private void hideDirectory() { private void hideDirectory() {
@ -549,9 +554,4 @@ public class MediaActivity extends SimpleActivity
initializeGallery(); initializeGallery();
mSwipeRefreshLayout.setRefreshing(false); mSwipeRefreshLayout.setRefreshing(false);
} }
@Override
public void sortingDialogClosed() {
initializeGallery();
}
} }

View file

@ -1,99 +0,0 @@
package com.simplemobiletools.gallery.dialogs;
import android.app.Activity;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.simplemobiletools.gallery.Config;
import com.simplemobiletools.gallery.Constants;
import com.simplemobiletools.gallery.R;
public class ChangeSorting extends AlertDialog.Builder implements DialogInterface.OnClickListener {
private static Config mConfig;
private static ChangeDialogListener mListener;
private static View mHolder;
private static int mCurrSorting;
private static boolean mIsDirectorySorting;
public ChangeSorting(Activity act, boolean isDirectorySorting) {
super(act.getApplicationContext());
mIsDirectorySorting = isDirectorySorting;
mListener = (ChangeDialogListener) act;
mConfig = Config.Companion.newInstance(getContext());
mHolder = act.getLayoutInflater().inflate(R.layout.change_sorting, null);
final AlertDialog.Builder builder = new AlertDialog.Builder(act);
builder.setTitle(act.getResources().getString(R.string.sort_by));
builder.setView(mHolder);
mCurrSorting = (mIsDirectorySorting ? mConfig.getDirectorySorting() : mConfig.getSorting());
setupSortRadio();
setupOrderRadio();
builder.setPositiveButton(R.string.ok, this);
builder.setNegativeButton(R.string.cancel, null);
builder.show();
}
private void setupSortRadio() {
final RadioGroup sortingRadio = (RadioGroup) mHolder.findViewById(R.id.dialog_radio_sorting);
RadioButton sortBtn = (RadioButton) sortingRadio.findViewById(R.id.dialog_radio_name);
if ((mCurrSorting & Constants.SORT_BY_DATE) != 0) {
sortBtn = (RadioButton) sortingRadio.findViewById(R.id.dialog_radio_date);
} else if ((mCurrSorting & Constants.SORT_BY_SIZE) != 0) {
sortBtn = (RadioButton) sortingRadio.findViewById(R.id.dialog_radio_size);
}
sortBtn.setChecked(true);
}
private void setupOrderRadio() {
final RadioGroup orderRadio = (RadioGroup) mHolder.findViewById(R.id.dialog_radio_order);
RadioButton orderBtn = (RadioButton) orderRadio.findViewById(R.id.dialog_radio_ascending);
if ((mCurrSorting & Constants.SORT_DESCENDING) != 0) {
orderBtn = (RadioButton) orderRadio.findViewById(R.id.dialog_radio_descending);
}
orderBtn.setChecked(true);
}
@Override
public void onClick(DialogInterface dialog, int which) {
final RadioGroup sortingRadio = (RadioGroup) mHolder.findViewById(R.id.dialog_radio_sorting);
int sorting = Constants.SORT_BY_NAME;
switch (sortingRadio.getCheckedRadioButtonId()) {
case R.id.dialog_radio_date:
sorting = Constants.SORT_BY_DATE;
break;
case R.id.dialog_radio_size:
sorting = Constants.SORT_BY_SIZE;
break;
default:
break;
}
final RadioGroup orderRadio = (RadioGroup) mHolder.findViewById(R.id.dialog_radio_order);
if (orderRadio.getCheckedRadioButtonId() == R.id.dialog_radio_descending) {
sorting |= Constants.SORT_DESCENDING;
}
if (mIsDirectorySorting) {
if (mConfig.getDirectorySorting() != sorting) {
mConfig.setDirectorySorting(sorting);
}
} else {
if (mConfig.getSorting() != sorting) {
mConfig.setSorting(sorting);
}
}
mListener.sortingDialogClosed();
}
public interface ChangeDialogListener {
void sortingDialogClosed();
}
}

View file

@ -0,0 +1,87 @@
package com.simplemobiletools.gallery.dialogs
import android.app.Activity
import android.content.DialogInterface
import android.support.v7.app.AlertDialog
import android.view.LayoutInflater
import android.view.View
import com.simplemobiletools.gallery.Config
import com.simplemobiletools.gallery.Constants
import com.simplemobiletools.gallery.R
import kotlinx.android.synthetic.main.dialog_change_sorting.view.*
class ChangeSortingDialog(val activity: Activity, val isDirectorySorting: Boolean, val listener: OnChangeSortingListener) : DialogInterface.OnClickListener {
companion object {
private var currSorting = 0
lateinit var config: Config
lateinit var view: View
}
init {
config = Config.newInstance(activity)
view = LayoutInflater.from(activity).inflate(R.layout.dialog_change_sorting, null)
AlertDialog.Builder(activity)
.setTitle(activity.resources.getString(R.string.sort_by))
.setView(view)
.setPositiveButton(R.string.ok, this)
.setNegativeButton(R.string.cancel, null)
.create()
.show()
currSorting = if (isDirectorySorting) config.directorySorting else config.sorting
setupSortRadio()
setupOrderRadio()
}
private fun setupSortRadio() {
val sortingRadio = view.dialog_radio_sorting
var sortBtn = sortingRadio.dialog_radio_name
if (currSorting and Constants.SORT_BY_DATE != 0) {
sortBtn = sortingRadio.dialog_radio_date
} else if (currSorting and Constants.SORT_BY_SIZE != 0) {
sortBtn = sortingRadio.dialog_radio_size
}
sortBtn.isChecked = true
}
private fun setupOrderRadio() {
val orderRadio = view.dialog_radio_order
var orderBtn = orderRadio.dialog_radio_ascending
if (currSorting and Constants.SORT_DESCENDING != 0) {
orderBtn = orderRadio.dialog_radio_descending
}
orderBtn.isChecked = true
}
override fun onClick(dialog: DialogInterface, which: Int) {
val sortingRadio = view.dialog_radio_sorting
var sorting = when (sortingRadio.checkedRadioButtonId) {
R.id.dialog_radio_name -> Constants.SORT_BY_NAME
R.id.dialog_radio_date -> Constants.SORT_BY_DATE
else -> Constants.SORT_BY_SIZE
}
if (view.dialog_radio_order.checkedRadioButtonId == R.id.dialog_radio_descending) {
sorting = sorting or Constants.SORT_DESCENDING
}
if (isDirectorySorting) {
if (config.directorySorting != sorting) {
config.directorySorting = sorting
}
} else {
if (config.sorting != sorting) {
config.sorting = sorting
}
}
listener.sortingChanged()
}
interface OnChangeSortingListener {
fun sortingChanged()
}
}