Add board descriptions

filtering
Floens 10 years ago
parent f792014663
commit 2afc6a66d6
  1. 4
      Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java
  2. 32
      Clover/app/src/main/java/org/floens/chan/core/model/Board.java
  3. 3
      Clover/app/src/main/java/org/floens/chan/core/model/Post.java
  4. 6
      Clover/app/src/main/java/org/floens/chan/core/net/BoardsRequest.java
  5. 10
      Clover/app/src/main/java/org/floens/chan/database/DatabaseHelper.java
  6. 11
      Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java
  7. 26
      Clover/app/src/main/res/layout/cell_board_edit.xml
  8. 3
      docs/database.txt

@ -62,10 +62,6 @@ public class ChanUrls {
return scheme + "://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif";
}
public static String getTrollCountryFlagUrl(String countryCode) {
return scheme + "://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif";
}
public static String getBoardsUrl() {
return scheme + "://a.4cdn.org/boards.json";
}

@ -46,53 +46,85 @@ public class Board {
*/
@DatabaseField
public String value;
/**
* True if this board appears in the dropdown, false otherwise.
*/
@DatabaseField
public boolean saved = false;
@DatabaseField
public int order;
@DatabaseField
public boolean workSafe = false;
@DatabaseField
public int perPage = -1;
@DatabaseField
public int pages = -1;
@DatabaseField
public int maxFileSize = -1;
@DatabaseField
public int maxWebmSize = -1;
@DatabaseField
public int maxCommentChars = -1;
@DatabaseField
public int bumpLimit = -1;
@DatabaseField
public int imageLimit = -1;
@DatabaseField
public int cooldownThreads = -1;
@DatabaseField
public int cooldownReplies = -1;
@DatabaseField
public int cooldownImages = -1;
@DatabaseField
public int cooldownRepliesIntra = -1;
@DatabaseField
public int cooldownImagesIntra = -1;
@DatabaseField
public boolean spoilers = false;
@DatabaseField
public int customSpoilers = -1;
@DatabaseField
public boolean userIds = false;
@DatabaseField
public boolean codeTags = false;
@DatabaseField
public boolean preuploadCaptcha = false;
@DatabaseField
public boolean countryFlags = false;
/**
* Not used anymore.
*/
@DatabaseField
public boolean trollFlags = false;
@DatabaseField
public boolean mathTags = false;
@DatabaseField
public String description;
public boolean finish() {
if (key == null || value == null || perPage < 0 || pages < 0)
return false;

@ -129,8 +129,7 @@ public class Post {
}
if (!TextUtils.isEmpty(country)) {
Board b = Chan.getBoardManager().getBoardByValue(board);
countryUrl = b.trollFlags ? ChanUrls.getTrollCountryFlagUrl(country) : ChanUrls.getCountryFlagUrl(country);
countryUrl = ChanUrls.getCountryFlagUrl(country);
}
ChanParser.getInstance().parse(this);

@ -150,12 +150,12 @@ public class BoardsRequest extends JsonReaderRequest<List<Board>> {
case "country_flags":
board.countryFlags = reader.nextInt() == 1;
break;
case "troll_flags":
board.trollFlags = reader.nextInt() == 1;
break;
case "math_tags":
board.mathTags = reader.nextInt() == 1;
break;
case "meta_description":
board.description = reader.nextString();
break;
default:
reader.skipValue();
break;

@ -41,7 +41,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
private static final String TAG = "DatabaseHelper";
private static final String DATABASE_NAME = "ChanDB";
private static final int DATABASE_VERSION = 16;
private static final int DATABASE_VERSION = 17;
public Dao<Pin, Integer> pinDao;
public Dao<Loadable, Integer> loadableDao;
@ -155,6 +155,14 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
Logger.e(TAG, "Error upgrading to version 16", e);
}
}
if (oldVersion < 17) {
try {
boardsDao.executeRawNoArgs("ALTER TABLE board ADD COLUMN description TEXT;");
} catch (SQLException e) {
Logger.e(TAG, "Error upgrading to version 17", e);
}
}
}
public void reset() {

@ -17,6 +17,7 @@
*/
package org.floens.chan.ui.controller;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
@ -49,6 +50,7 @@ import org.floens.chan.ui.toolbar.ToolbarMenu;
import org.floens.chan.ui.toolbar.ToolbarMenuItem;
import org.floens.chan.ui.view.FloatingMenuItem;
import org.floens.chan.utils.AndroidUtils;
import org.jsoup.parser.Parser;
import java.util.ArrayList;
import java.util.Collections;
@ -109,7 +111,7 @@ public class BoardEditController extends Controller implements SwipeListener.Cal
Collections.sort(boards, new Comparator<Board>() {
@Override
public int compare(Board lhs, Board rhs) {
return lhs.key.compareTo(rhs.key);
return lhs.value.compareTo(rhs.value);
}
});
adapter.notifyDataSetChanged();
@ -303,9 +305,10 @@ public class BoardEditController extends Controller implements SwipeListener.Cal
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@SuppressLint("ViewHolder")
TextView view = (TextView) inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
Board b = filtered.get(position);
view.setText("/" + b.value + "/ " + b.key);
view.setText("/" + b.value + "/ - " + b.key);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
@ -394,6 +397,8 @@ public class BoardEditController extends Controller implements SwipeListener.Cal
BoardEditItem item = (BoardEditItem) holder;
Board board = boards.get(position - 1);
item.text.setText("/" + board.value + "/ " + board.key);
item.description.setText(Parser.unescapeEntities(board.description, false));
}
}
@ -420,11 +425,13 @@ public class BoardEditController extends Controller implements SwipeListener.Cal
private class BoardEditItem extends RecyclerView.ViewHolder {
private ImageView image;
private TextView text;
private TextView description;
public BoardEditItem(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.thumb);
text = (TextView) itemView.findViewById(R.id.text);
description = (TextView) itemView.findViewById(R.id.description);
image.setImageDrawable(new ThumbDrawable());
}
}

@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:orientation="horizontal">
@ -32,17 +32,35 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
android:scaleType="center"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/text"
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp"
android:singleLine="true"
android:textColor="?text_color_primary"
android:textSize="14sp" />
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:paddingBottom="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="?text_color_secondary"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>

@ -43,3 +43,6 @@ ALTER TABLE pin ADD COLUMN archived INTEGER;
Changes in version 16:
Table ThreadHide added
Changes is version 17:
ALTER TABLE board ADD COLUMN description TEXT;

Loading…
Cancel
Save