Fix filter fragment crash
This commit is contained in:
4 files changed
+32
-10
No files matched your search
@@ -595,9 +595,20 @@ public class EhDB {
|
||||
return sDaoSession.getFilterDao().queryBuilder().list();
|
||||
}
|
||||
|
||||
public static synchronized void addFilter(Filter filter) {
|
||||
filter.setId(null);
|
||||
filter.setId(sDaoSession.getFilterDao().insert(filter));
|
||||
public static synchronized boolean addFilter(Filter filter) {
|
||||
Filter existFilter;
|
||||
try {
|
||||
existFilter = sDaoSession.getFilterDao().queryBuilder().where(FilterDao.Properties.Text.eq(filter.text), FilterDao.Properties.Mode.eq(filter.mode)).unique();
|
||||
} catch (Exception e) {
|
||||
existFilter = null;
|
||||
}
|
||||
if (existFilter == null) {
|
||||
filter.setId(null);
|
||||
filter.setId(sDaoSession.getFilterDao().insert(filter));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void deleteFilter(Filter filter) {
|
||||
|
||||
@@ -88,10 +88,10 @@ public final class EhFilter {
|
||||
return mTagNamespaceFilterList;
|
||||
}
|
||||
|
||||
public synchronized void addFilter(Filter filter) {
|
||||
public synchronized boolean addFilter(Filter filter) {
|
||||
// enable filter by default before it is added to database
|
||||
filter.enable = true;
|
||||
EhDB.addFilter(filter);
|
||||
if (!EhDB.addFilter(filter)) return false;
|
||||
|
||||
switch (filter.mode) {
|
||||
case MODE_TITLE:
|
||||
@@ -113,6 +113,7 @@ public final class EhFilter {
|
||||
Log.d(TAG, "Unknown mode: " + filter.mode);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public synchronized void triggerFilter(Filter filter) {
|
||||
|
||||
@@ -219,7 +219,12 @@ public class FilterFragment extends BaseFragment {
|
||||
Filter filter = new Filter();
|
||||
filter.mode = mode;
|
||||
filter.text = text;
|
||||
mFilterList.add(filter);
|
||||
if (!mFilterList.add(filter)) {
|
||||
mInputLayout.setError(getString(R.string.label_text_exist));
|
||||
return;
|
||||
} else {
|
||||
mInputLayout.setError(null);
|
||||
}
|
||||
|
||||
if (null != mAdapter) {
|
||||
mAdapter.notifyDataSetChanged();
|
||||
@@ -314,7 +319,12 @@ public class FilterFragment extends BaseFragment {
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return null != mFilterList ? mFilterList.get(position).text.hashCode() : 0;
|
||||
if (mFilterList == null) {
|
||||
return 0;
|
||||
} else {
|
||||
Filter filter = mFilterList.get(position);
|
||||
return filter.text.hashCode() >> filter.mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -436,8 +446,8 @@ public class FilterFragment extends BaseFragment {
|
||||
throw new IndexOutOfBoundsException();
|
||||
}
|
||||
|
||||
public void add(Filter filter) {
|
||||
mEhFilter.addFilter(filter);
|
||||
public boolean add(Filter filter) {
|
||||
return mEhFilter.addFilter(filter);
|
||||
}
|
||||
|
||||
public void delete(Filter filter) {
|
||||
|
||||
Reference in new issue
Block a user