Add archived icon to pins

filtering
Floens 10 years ago
parent 40f9d3acec
commit beecc62b29
  1. 4
      Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java
  2. 3
      Clover/app/src/main/java/org/floens/chan/core/model/Pin.java
  3. 8
      Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java
  4. 10
      Clover/app/src/main/java/org/floens/chan/database/DatabaseHelper.java
  5. 10
      Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java
  6. 4
      docs/database.txt

@ -203,8 +203,8 @@ public class WatchManager {
pin.watching = !pin.watching;
EventBus.getDefault().post(new PinChangedMessage(pin));
Chan.getWatchManager().onPinsChanged();
Chan.getWatchManager().invokeLoadNow();
onPinsChanged();
invokeLoadNow();
}
public void pinWatcherUpdated(Pin pin) {

@ -54,6 +54,9 @@ public class Pin {
@DatabaseField
public int order = -1;
@DatabaseField
public boolean archived = false;
private PinWatcher pinWatcher;
public int getNewPostCount() {

@ -173,6 +173,14 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt
*/
@Override
public void onChanLoaderData(ChanThread result) {
Pin pin = watchManager.findPinByLoadable(loadable);
if (pin != null) {
if (pin.archived != result.archived) {
pin.archived = result.archived;
watchManager.updatePin(pin);
}
}
chanLoader.setAutoLoadMore(isWatching());
threadPresenterCallback.showPosts(result);

@ -40,7 +40,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 = 14;
private static final int DATABASE_VERSION = 15;
public Dao<Pin, Integer> pinDao;
public Dao<Loadable, Integer> loadableDao;
@ -135,6 +135,14 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
e.printStackTrace();
}
}
if (oldVersion < 15) {
try {
pinDao.executeRawNoArgs("ALTER TABLE pin ADD COLUMN archived INTEGER;");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void reset() {

@ -18,6 +18,7 @@
package org.floens.chan.ui.adapter;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -28,6 +29,7 @@ import org.floens.chan.Chan;
import org.floens.chan.R;
import org.floens.chan.core.model.Pin;
import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.ui.helper.PostHelper;
import org.floens.chan.ui.helper.SwipeListener;
import org.floens.chan.ui.view.ThumbnailView;
import org.floens.chan.utils.AndroidUtils;
@ -39,6 +41,7 @@ import static org.floens.chan.utils.AndroidUtils.ROBOTO_MEDIUM;
import static org.floens.chan.utils.AndroidUtils.dp;
import static org.floens.chan.utils.AndroidUtils.getAttrColor;
import static org.floens.chan.utils.AndroidUtils.setRoundItemBackground;
import static org.floens.chan.utils.AndroidUtils.sp;
public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements SwipeListener.Callback {
private static final int PIN_OFFSET = 4;
@ -194,7 +197,12 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
}
public void updatePinViewHolder(PinViewHolder holder, Pin pin) {
holder.textView.setText(pin.loadable.title);
CharSequence text = pin.loadable.title;
if (pin.archived) {
text = TextUtils.concat(PostHelper.addIcon(PostHelper.archivedIcon, sp(14 + 2)), text);
}
holder.textView.setText(text);
holder.image.setUrl(pin.thumbnailUrl, dp(40), dp(40));
if (ChanSettings.watchEnabled.get()) {

@ -36,3 +36,7 @@ ALTER TABLE board ADD COLUMN thumbnailUrl VARCHAR;
Changes in version 14:
ALTER TABLE pin ADD COLUMN order INTEGER;
Changes is version 15:
ALTER TABLE pin ADD COLUMN archived INTEGER;

Loading…
Cancel
Save