Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Download KFS crosswords in .jpz format #149

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Split accessor implementation from interface
Sort puzzles from same source by date descending
gtkirk committed Jan 6, 2019
commit bc5b51e5fe9afe6a8627816088829c8b7ef7234e
52 changes: 0 additions & 52 deletions app/src/main/java/com/totsp/crossword/Accessor.java
Original file line number Diff line number Diff line change
@@ -1,60 +1,8 @@
package com.totsp.crossword;

import java.text.SimpleDateFormat;
import java.util.Comparator;


public interface Accessor extends Comparator<FileHandle> {
Accessor DATE_ASC = new Accessor() {
@SuppressWarnings("SimpleDateFormat")
public String getLabel(FileHandle o) {
SimpleDateFormat df = new SimpleDateFormat("EEEEEEEEE MMM dd, yyyy");

return df.format(o.getDate());
}

public int compare(FileHandle object1, FileHandle object2) {
int dateComparison = object1.getDate()
.compareTo(object2.getDate());

if (dateComparison == 0) {
return Accessor.SOURCE.compare(object1, object2);
}

return dateComparison;
}
};

Accessor DATE_DESC = new Accessor() {
@SuppressWarnings("SimpleDateFormat")
public String getLabel(FileHandle o) {
SimpleDateFormat df = new SimpleDateFormat("EEEEEEEEE MMM dd, yyyy");

return df.format(o.getDate());
}

public int compare(FileHandle object1, FileHandle object2) {
int dateComparison = object2.getDate()
.compareTo(object1.getDate());

if (dateComparison == 0) {
return Accessor.SOURCE.compare(object1, object2);
}

return dateComparison;
}
};

Accessor SOURCE = new Accessor() {
public String getLabel(FileHandle o) {
return o.getSource();
}

public int compare(FileHandle object1, FileHandle object2) {
return object1.getSource()
.compareTo(object2.getSource());
}
};

String getLabel(FileHandle o);
}
72 changes: 72 additions & 0 deletions app/src/main/java/com/totsp/crossword/Accessors.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package com.totsp.crossword;

import java.text.SimpleDateFormat;

final public class Accessors {
private Accessors() {}

static Accessor DATE_ASC = new Accessor() {
public String getLabel(FileHandle o) {
return getDateLabel(o);
}

public int compare(FileHandle object1, FileHandle object2) {
int dateComparison = compareDate(object1, object2);

if (dateComparison == 0) {
return compareSource(object1, object2);
}

return dateComparison;
}
};

static Accessor DATE_DESC = new Accessor() {
public String getLabel(FileHandle o) {
return getDateLabel(o);
}

public int compare(FileHandle object1, FileHandle object2) {
int dateComparison = compareDate(object2, object1);

if (dateComparison == 0) {
return compareSource(object1, object2);
}

return dateComparison;
}
};

static Accessor SOURCE = new Accessor() {
public String getLabel(FileHandle o) {
return o.getSource();
}

public int compare(FileHandle object1, FileHandle object2) {
int sourceComparison = compareSource(object1, object2);

if (sourceComparison == 0) {
return compareDate(object2, object1);
}

return sourceComparison;
}
};

@SuppressWarnings("SimpleDateFormat")
private static String getDateLabel(FileHandle o) {
SimpleDateFormat df = new SimpleDateFormat("EEEEEEEEE MMM dd, yyyy");

return df.format(o.getDate());
}

private static int compareDate(FileHandle object1, FileHandle object2) {
return object1.getDate()
.compareTo(object2.getDate());
}

private static int compareSource(FileHandle object1, FileHandle object2) {
return object1.getSource()
.compareTo(object2.getSource());
}
}
16 changes: 8 additions & 8 deletions app/src/main/java/com/totsp/crossword/BrowseActivity.java
Original file line number Diff line number Diff line change
@@ -71,7 +71,7 @@ public class BrowseActivity extends ShortyzActivity implements RecyclerItemClick
private static final int REQUEST_WRITE_STORAGE = 1002;
private static final long DAY = 24L * 60L * 60L * 1000L;
private static final Logger LOGGER = Logger.getLogger(BrowseActivity.class.getCanonicalName());
private Accessor accessor = Accessor.DATE_DESC;
private Accessor accessor = Accessors.DATE_DESC;
private SeparatedRecyclerViewAdapter currentAdapter = null;
private Dialog downloadDialog;
private File archiveFolder = new File(Environment.getExternalStorageDirectory(), "crosswords/archive");
@@ -291,21 +291,21 @@ public boolean onOptionsItemSelected(MenuItem item) {
this.startActivity(i);
} else if (item.getTitle()
.equals("By Source")) {
this.accessor = Accessor.SOURCE;
this.accessor = Accessors.SOURCE;
prefs.edit()
.putInt("sort", 2)
.apply();
this.render();
} else if (item.getTitle()
.equals("By Date (Ascending)")) {
this.accessor = Accessor.DATE_ASC;
this.accessor = Accessors.DATE_ASC;
prefs.edit()
.putInt("sort", 1)
.apply();
this.render();
} else if (item.getTitle()
.equals("By Date (Descending)")) {
this.accessor = Accessor.DATE_DESC;
this.accessor = Accessors.DATE_DESC;
prefs.edit()
.putInt("sort", 0)
.apply();
@@ -391,17 +391,17 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {

switch (prefs.getInt("sort", 0)) {
case 2:
this.accessor = Accessor.SOURCE;
this.accessor = Accessors.SOURCE;

break;

case 1:
this.accessor = Accessor.DATE_ASC;
this.accessor = Accessors.DATE_ASC;

break;

default:
this.accessor = Accessor.DATE_DESC;
this.accessor = Accessors.DATE_DESC;
}


@@ -986,7 +986,7 @@ public void onBindViewHolder(FileViewHolder holder, int position) {

date.setText(df.format(handle.getDate()));

if (accessor == Accessor.SOURCE) {
if (accessor == Accessors.SOURCE) {
date.setVisibility(View.VISIBLE);
} else {
date.setVisibility(View.GONE);