Browse Source

BoardActivity style changes

pull/24/head
Apostolos Fanakis 8 years ago
parent
commit
703ac046d1
  1. 8
      app/src/main/assets/style.css
  2. 5
      app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java
  3. 95
      app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardAdapter.java
  4. 3
      app/src/main/res/layout/activity_board_sub_board.xml
  5. 3
      app/src/main/res/layout/activity_board_topic.xml
  6. 5
      app/src/main/res/values/strings.xml

8
app/src/main/assets/style.css

@ -170,13 +170,13 @@ a img
/* A code block - maybe even PHP ;). */ /* A code block - maybe even PHP ;). */
.code .code
{ {
color: #26A69A; color: #FFFFFF;
background-color: #dddddd; background-color: #626566;
font-family: "Comic Sans MS", "times new roman", monospace; font-family: "Comic Sans MS", "times new roman", monospace;
font-size: x-small; font-size: x-small;
line-height: 1.3em; line-height: 1.3em;
/* Put a nice border around it. */ /* Put a nice border around it. */
border: 1px solid #000000; border: 1px solid #FFFFFF;
margin: 1px auto 1px auto; margin: 1px auto 1px auto;
padding: 1px; padding: 1px;
width: 99%; width: 99%;
@ -191,7 +191,7 @@ a img
.quoteheader, .codeheader .quoteheader, .codeheader
{ {
font-family: tahoma, sans-serif; font-family: tahoma, sans-serif;
color: #000000; color: #26A69A;
text-decoration: none; text-decoration: none;
font-style: normal; font-style: normal;
font-weight: bold; font-weight: bold;

5
app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java

@ -6,7 +6,6 @@ import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.Toast; import android.widget.Toast;
@ -110,7 +109,7 @@ public class BoardActivity extends BaseActivity implements BoardAdapter.OnLoadMo
public void onLoadMore() { public void onLoadMore() {
if (pagesLoaded < numberOfPages) { if (pagesLoaded < numberOfPages) {
parsedTopics.add(null); parsedTopics.add(null);
boardAdapter.notifyItemInserted(parsedSubBoards.size() + parsedTopics.size() - 1); boardAdapter.notifyItemInserted(parsedSubBoards.size() + parsedTopics.size());
//Load data //Load data
boardTask = new BoardTask(); boardTask = new BoardTask();
@ -176,7 +175,7 @@ public class BoardActivity extends BaseActivity implements BoardAdapter.OnLoadMo
private boolean parseBoard(Document boardPage) { private boolean parseBoard(Document boardPage) {
//Removes loading item //Removes loading item
if (isLoadingMore) { if (isLoadingMore) {
parsedTopics.remove(parsedTopics.size() - 1); if (parsedTopics.size() > 0) parsedTopics.remove(parsedTopics.size() - 1);
} }
//Finds number of pages //Finds number of pages
if (numberOfPages == -1) { if (numberOfPages == -1) {

95
app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardAdapter.java

@ -2,6 +2,8 @@ package gr.thmmy.mthmmy.activities.board;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Typeface;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -29,9 +31,11 @@ import static gr.thmmy.mthmmy.activities.topic.TopicActivity.BUNDLE_TOPIC_URL;
*/ */
class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final String TAG = "BoardAdapter"; private static final String TAG = "BoardAdapter";
private final int VIEW_TYPE_SUB_BOARD = 0; private final int VIEW_TYPE_SUB_BOARD_TITLE = 0;
private final int VIEW_TYPE_TOPIC = 1; private final int VIEW_TYPE_SUB_BOARD = 1;
private final int VIEW_TYPE_LOADING = 2; private final int VIEW_TYPE_TOPIC_TITLE = 2;
private final int VIEW_TYPE_TOPIC = 3;
private final int VIEW_TYPE_LOADING = 4;
private final Context context; private final Context context;
private ArrayList<Board> parsedSubBoards = new ArrayList<>(); private ArrayList<Board> parsedSubBoards = new ArrayList<>();
@ -49,27 +53,62 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@Override @Override
public int getItemViewType(int position) { public int getItemViewType(int position) {
if (position < parsedSubBoards.size()) if (position <= parsedSubBoards.size()) {
if (position == 0) return VIEW_TYPE_SUB_BOARD_TITLE;
return VIEW_TYPE_SUB_BOARD; return VIEW_TYPE_SUB_BOARD;
else if (parsedTopics.get(position - parsedSubBoards.size()) != null) } else if (position <= parsedSubBoards.size() + parsedTopics.size() + 1) {
if (position == parsedSubBoards.size() + 1) return VIEW_TYPE_TOPIC_TITLE;
if (parsedTopics.get(position - parsedSubBoards.size() - 1 - 1) != null)
return VIEW_TYPE_TOPIC; return VIEW_TYPE_TOPIC;
else return VIEW_TYPE_LOADING; }
return VIEW_TYPE_LOADING;
} }
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == VIEW_TYPE_SUB_BOARD) { if (viewType == VIEW_TYPE_SUB_BOARD_TITLE) {
View view = LayoutInflater.from(parent.getContext()). TextView subBoardTitle = new TextView(context);
subBoardTitle.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT
, LinearLayout.LayoutParams.WRAP_CONTENT));
subBoardTitle.setText(context.getString(R.string.child_board_title));
subBoardTitle.setTypeface(subBoardTitle.getTypeface(), Typeface.BOLD);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
subBoardTitle.setBackgroundColor(context.getColor(R.color.card_background));
subBoardTitle.setTextColor(context.getColor(R.color.accent));
} else {
//noinspection deprecation
subBoardTitle.setBackgroundColor(context.getResources().getColor(R.color.card_background));
//noinspection deprecation
subBoardTitle.setTextColor(context.getResources().getColor(R.color.accent));
}
subBoardTitle.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
subBoardTitle.setTextSize(20f);
return new TitlesViewHolder(subBoardTitle);
} else if (viewType == VIEW_TYPE_SUB_BOARD) {
View subBoard = LayoutInflater.from(parent.getContext()).
inflate(R.layout.activity_board_sub_board, parent, false); inflate(R.layout.activity_board_sub_board, parent, false);
return new SubBoardViewHolder(view); return new SubBoardViewHolder(subBoard);
} else if (viewType == VIEW_TYPE_TOPIC_TITLE) {
TextView topicTitle = new TextView(context);
topicTitle.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT
, LinearLayout.LayoutParams.WRAP_CONTENT));
topicTitle.setText(context.getString(R.string.topic_title));
topicTitle.setTypeface(topicTitle.getTypeface(), Typeface.BOLD);
topicTitle.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
topicTitle.setTextSize(20f);
return new TitlesViewHolder(topicTitle);
} else if (viewType == VIEW_TYPE_TOPIC) { } else if (viewType == VIEW_TYPE_TOPIC) {
View view = LayoutInflater.from(parent.getContext()). View topic = LayoutInflater.from(parent.getContext()).
inflate(R.layout.activity_board_topic, parent, false); inflate(R.layout.activity_board_topic, parent, false);
return new TopicViewHolder(view); return new TopicViewHolder(topic);
} else if (viewType == VIEW_TYPE_LOADING) { } else if (viewType == VIEW_TYPE_LOADING) {
View view = LayoutInflater.from(parent.getContext()). View loading = LayoutInflater.from(parent.getContext()).
inflate(R.layout.recycler_loading_item, parent, false); inflate(R.layout.recycler_loading_item, parent, false);
return new LoadingViewHolder(view); return new LoadingViewHolder(loading);
} }
return null; return null;
} }
@ -77,7 +116,7 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@Override @Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) { public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof SubBoardViewHolder) { if (holder instanceof SubBoardViewHolder) {
Board subBoard = parsedSubBoards.get(position); final Board subBoard = parsedSubBoards.get(position - 1);
final SubBoardViewHolder subBoardViewHolder = (SubBoardViewHolder) holder; final SubBoardViewHolder subBoardViewHolder = (SubBoardViewHolder) holder;
subBoardViewHolder.boardRow.setOnClickListener(new View.OnClickListener() { subBoardViewHolder.boardRow.setOnClickListener(new View.OnClickListener() {
@ -85,10 +124,8 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public void onClick(View view) { public void onClick(View view) {
Intent intent = new Intent(context, BoardActivity.class); Intent intent = new Intent(context, BoardActivity.class);
Bundle extras = new Bundle(); Bundle extras = new Bundle();
extras.putString(BUNDLE_BOARD_URL, parsedSubBoards.get(holder. extras.putString(BUNDLE_BOARD_URL, subBoard.getUrl());
getAdapterPosition()).getUrl()); extras.putString(BUNDLE_BOARD_TITLE, subBoard.getTitle());
extras.putString(BUNDLE_BOARD_TITLE, parsedSubBoards.get(holder.
getAdapterPosition()).getTitle());
intent.putExtras(extras); intent.putExtras(extras);
intent.setFlags(FLAG_ACTIVITY_NEW_TASK); intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent); context.startActivity(intent);
@ -99,7 +136,7 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
subBoardViewHolder.boardStats.setText(subBoard.getStats()); subBoardViewHolder.boardStats.setText(subBoard.getStats());
subBoardViewHolder.boardLastPost.setText(subBoard.getLastPost()); subBoardViewHolder.boardLastPost.setText(subBoard.getLastPost());
} else if (holder instanceof TopicViewHolder) { } else if (holder instanceof TopicViewHolder) {
Topic topic = parsedTopics.get(position - parsedSubBoards.size()); final Topic topic = parsedTopics.get(position - parsedSubBoards.size() - 1 - 1);
final TopicViewHolder topicViewHolder = (TopicViewHolder) holder; final TopicViewHolder topicViewHolder = (TopicViewHolder) holder;
topicViewHolder.topicRow.setOnClickListener(new View.OnClickListener() { topicViewHolder.topicRow.setOnClickListener(new View.OnClickListener() {
@ -107,10 +144,8 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public void onClick(View view) { public void onClick(View view) {
Intent intent = new Intent(context, TopicActivity.class); Intent intent = new Intent(context, TopicActivity.class);
Bundle extras = new Bundle(); Bundle extras = new Bundle();
extras.putString(BUNDLE_TOPIC_URL, parsedTopics.get(holder. extras.putString(BUNDLE_TOPIC_URL, topic.getUrl());
getAdapterPosition() - parsedSubBoards.size()).getUrl()); extras.putString(BUNDLE_TOPIC_TITLE, topic.getSubject());
extras.putString(BUNDLE_TOPIC_TITLE, parsedTopics.get(holder.
getAdapterPosition() - parsedSubBoards.size()).getSubject());
intent.putExtras(extras); intent.putExtras(extras);
intent.setFlags(FLAG_ACTIVITY_NEW_TASK); intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent); context.startActivity(intent);
@ -134,10 +169,10 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@Override @Override
public int getItemCount() { public int getItemCount() {
if (parsedSubBoards == null && parsedTopics == null) return 0; int items = 0;
else if (parsedSubBoards == null) return parsedTopics.size(); if (parsedSubBoards != null) items += parsedSubBoards.size() + 1;
else if (parsedTopics == null) return parsedSubBoards.size(); if (parsedTopics != null) items += parsedTopics.size() + 1;
else return parsedSubBoards.size() + parsedTopics.size(); return items;
} }
private static class SubBoardViewHolder extends RecyclerView.ViewHolder { private static class SubBoardViewHolder extends RecyclerView.ViewHolder {
@ -169,6 +204,12 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
} }
} }
private static class TitlesViewHolder extends RecyclerView.ViewHolder {
TitlesViewHolder(View title) {
super(title);
}
}
private static class LoadingViewHolder extends RecyclerView.ViewHolder { private static class LoadingViewHolder extends RecyclerView.ViewHolder {
final MaterialProgressBar progressBar; final MaterialProgressBar progressBar;

3
app/src/main/res/layout/activity_board_sub_board.xml

@ -15,8 +15,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/child_board_title" android:text="@string/child_board_title"
android:textColor="@color/accent" android:textColor="@color/accent"/>
android:textStyle="bold"/>
<TextView <TextView
android:id="@+id/child_board_mods" android:id="@+id/child_board_mods"

3
app/src/main/res/layout/activity_board_topic.xml

@ -19,8 +19,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/topic_subject" android:text="@string/topic_subject"
android:textColor="@color/primary_text" android:textColor="@color/primary_text"/>
android:textStyle="bold"/>
<TextView <TextView
android:id="@+id/topic_locked_sticky" android:id="@+id/topic_locked_sticky"

5
app/src/main/res/values/strings.xml

@ -18,13 +18,14 @@
<string name="byUser">by %1$s</string> <string name="byUser">by %1$s</string>
<!--Board Activity--> <!--Board Activity-->
<string name="child_board_title">Child Board</string> <string name="child_board_title">Child Boards</string>
<string name="child_board_mods">Moderators: %1$s</string> <string name="child_board_mods">Moderators: %1$s</string>
<string name="child_board_stats">Stats</string> <string name="child_board_stats">Stats</string>
<string name="child_board_last_post">Last post</string> <string name="child_board_last_post">Last post</string>
<string name="topic_title">Topics</string>
<string name="topic_subject">Subject</string> <string name="topic_subject">Subject</string>
<string name="topic_locked_sticky">Locked/Sticky</string> <string name="topic_locked_sticky">Locked/Sticky</string>
<string name="topic_started_by">Started By: %1$s</string> <string name="topic_started_by">Started by: %1$s</string>
<string name="topic_stats">Stats</string> <string name="topic_stats">Stats</string>
<string name="topic_last_post">Last post on: %1$s</string> <string name="topic_last_post">Last post on: %1$s</string>

Loading…
Cancel
Save