diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/TwidereConstants.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/TwidereConstants.java index 630fdbcf6..599e40563 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/TwidereConstants.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/TwidereConstants.java @@ -50,8 +50,8 @@ public interface TwidereConstants extends SharedPreferenceConstants, IntentConst String TWITTER_CONSUMER_KEY_LEGACY = "uAFVpMhBntJutfVj6abfA"; String TWITTER_CONSUMER_SECRET_LEGACY = "JARXkJTfxo0F8MyctYy9bUmrLISjo8vXAHsZHYuk2E"; - String TWITTER_CONSUMER_KEY = "YVROlQkXFvkPfH3jcFaR4A"; - String TWITTER_CONSUMER_SECRET = "0UnEHDq5IzVK9nstiz2nWOtG5rOMM5JkUpATfM78Do"; + String TWITTER_CONSUMER_KEY = "i5XtSVfoWjLjKlnrvhiLPMZC0"; + String TWITTER_CONSUMER_SECRET = "sQncmZ2atQR6tKbqnnAtqjrECqN8k6FD4p4OoNS0XTDkUz3HGH"; String DEFAULT_TWITTER_API_URL_FORMAT = "https://[DOMAIN.]twitter.com/"; String DEFAULT_TWITTER_OAUTH_BASE_URL = "https://api.twitter.com/oauth/"; diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableMedia.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableMedia.java index ac939e550..902a270e7 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableMedia.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/ParcelableMedia.java @@ -165,19 +165,12 @@ public class ParcelableMedia implements Parcelable { @Retention(RetentionPolicy.SOURCE) public @interface Type { - @Type int UNKNOWN = 0; - @Type int IMAGE = 1; - @Type int VIDEO = 2; - @Type int ANIMATED_GIF = 3; - @Type int CARD_ANIMATED_GIF = 4; - @Type int EXTERNAL_PLAYER = 5; - @Type int VARIABLE_TYPE = 6; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/SettingsWizardActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/SettingsWizardActivity.java index 0549c4445..eab510105 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/SettingsWizardActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/SettingsWizardActivity.java @@ -81,8 +81,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import static org.mariotaku.twidere.util.CompareUtils.classEquals; - public class SettingsWizardActivity extends BaseThemedActivity implements Constants { public static final String WIZARD_PREFERENCE_KEY_NEXT_PAGE = "next_page"; @@ -667,9 +665,9 @@ public class SettingsWizardActivity extends BaseThemedActivity implements Consta private boolean wasConfigured(final List tabs) { for (final SupportTabSpec spec : tabs) { - if (classEquals(spec.cls, HomeTimelineFragment.class) - || classEquals(spec.cls, InteractionsTimelineFragment.class) - || classEquals(spec.cls, DirectMessagesFragment.class)) return true; + if (spec.cls == HomeTimelineFragment.class + || spec.cls == InteractionsTimelineFragment.class + || spec.cls == DirectMessagesFragment.class) return true; } return false; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java index 849e4a9a1..27f90de66 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java @@ -107,13 +107,6 @@ import org.mariotaku.twidere.view.iface.IHomeActionButton; import java.util.Collections; import java.util.List; -import static org.mariotaku.twidere.util.CompareUtils.classEquals; -import static org.mariotaku.twidere.util.DataStoreUtils.cleanDatabasesByItemLimit; -import static org.mariotaku.twidere.util.Utils.getDefaultAccountId; -import static org.mariotaku.twidere.util.Utils.getTabDisplayOptionInt; -import static org.mariotaku.twidere.util.Utils.openMessageConversation; -import static org.mariotaku.twidere.util.Utils.openSearch; - public class HomeActivity extends BaseAppCompatActivity implements OnClickListener, OnPageChangeListener, SupportFragmentCallback, OnLongClickListener, DrawerLayout.DrawerListener { private final Handler mHandler = new Handler(); @@ -355,7 +348,7 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen setSupportActionBar(mActionBar); sendBroadcast(new Intent(BROADCAST_HOME_ACTIVITY_ONCREATE)); final boolean refreshOnStart = mPreferences.getBoolean(KEY_REFRESH_ON_START, false); - int tabDisplayOptionInt = getTabDisplayOptionInt(this); + int tabDisplayOptionInt = Utils.getTabDisplayOptionInt(this); mTabColumns = getResources().getInteger(R.integer.default_tab_columns); @@ -570,7 +563,7 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen TaskStarter.execute(new AbstractTask() { @Override public Object doLongOperation(Object o) { - cleanDatabasesByItemLimit(context); + DataStoreUtils.cleanDatabasesByItemLimit(context); return null; } }); @@ -682,9 +675,9 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen if (appSearchData != null && appSearchData.containsKey(EXTRA_ACCOUNT_ID)) { accountId = appSearchData.getLong(EXTRA_ACCOUNT_ID, -1); } else { - accountId = getDefaultAccountId(this); + accountId = Utils.getDefaultAccountId(this); } - openSearch(this, accountId, query); + Utils.openSearch(this, accountId, query); return -1; } final boolean refreshOnStart = mPreferences.getBoolean(KEY_REFRESH_ON_START, false); @@ -715,7 +708,8 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen final long readPosition = NumberUtils.toLong(uri.getQueryParameter(QUERY_PARAM_READ_POSITION), -1); switch (tabType) { case CustomTabType.HOME_TIMELINE: { - final String tag = Utils.getReadPositionTagWithAccounts(ReadPositionTag.HOME_TIMELINE, accountId); + final String tag = Utils.getReadPositionTagWithAccounts(ReadPositionTag.HOME_TIMELINE, + accountId); mReadStateManager.setPosition(tag, readPosition, false); break; } @@ -723,8 +717,9 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen if (initialTab == -1 && !restoreInstanceState) { Utils.openInteractions(this, accountId); } - final String tag = Utils.getReadPositionTagWithAccounts(ReadPositionTag.ACTIVITIES_ABOUT_ME, accountId); - mReadStateManager.setPosition(tag, accountId, readPosition, false); + final String tag = Utils.getReadPositionTagWithAccounts(ReadPositionTag.ACTIVITIES_ABOUT_ME, + accountId); + mReadStateManager.setPosition(tag, readPosition, false); break; } case CustomTabType.DIRECT_MESSAGES: { @@ -847,9 +842,9 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen final int position = mViewPager.getCurrentItem(); if (mPagerAdapter.getCount() == 0) return; final SupportTabSpec tab = mPagerAdapter.getTab(position); - if (classEquals(DirectMessagesFragment.class, tab.cls)) { - openMessageConversation(this, -1, -1); - } else if (classEquals(TrendsSuggestionsFragment.class, tab.cls)) { + if (DirectMessagesFragment.class == tab.cls) { + Utils.openMessageConversation(this, -1, -1); + } else if (TrendsSuggestionsFragment.class == tab.cls) { openSearchView(null); } else { startActivity(new Intent(INTENT_ACTION_COMPOSE)); @@ -862,10 +857,10 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen final int position = mViewPager.getCurrentItem(); if (mPagerAdapter.getCount() == 0) return; final SupportTabSpec tab = mPagerAdapter.getTab(position); - if (classEquals(DirectMessagesFragment.class, tab.cls)) { + if (DirectMessagesFragment.class == tab.cls) { icon = R.drawable.ic_action_add; title = R.string.new_direct_message; - } else if (classEquals(TrendsSuggestionsFragment.class, tab.cls)) { + } else if (TrendsSuggestionsFragment.class == tab.cls) { icon = R.drawable.ic_action_search; title = android.R.string.search_go; } else { @@ -957,7 +952,7 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen case CustomTabType.HOME_TIMELINE: { final long[] accountIds = Utils.getAccountIds(spec.args); final String tagWithAccounts = Utils.getReadPositionTagWithAccounts(mContext, - true, spec.tag, accountIds); + true, ReadPositionTag.HOME_TIMELINE, accountIds); final long position = mReadStateManager.getPosition(tagWithAccounts); final int count = DataStoreUtils.getStatusesCount(mContext, Statuses.CONTENT_URI, position, accountIds); @@ -967,8 +962,11 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen } case CustomTabType.NOTIFICATIONS_TIMELINE: { final long[] accountIds = Utils.getAccountIds(spec.args); - final int count = DataStoreUtils.getInteractionsCount(mContext, mReadStateManager, - spec.tag, spec.args, accountIds); + final String tagWithAccounts = Utils.getReadPositionTagWithAccounts(mContext, + true, ReadPositionTag.ACTIVITIES_ABOUT_ME, accountIds); + final long position = mReadStateManager.getPosition(tagWithAccounts); + final int count = DataStoreUtils.getInteractionsCount(mContext, spec.args, + accountIds, position); publishProgress(new TabBadge(i, count)); result.put(i, count); break; diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java index 7051b8890..8ea1994c3 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java +++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/StatusFragment.java @@ -112,13 +112,17 @@ import org.mariotaku.twidere.model.ParcelableCredentials; import org.mariotaku.twidere.model.ParcelableLocation; import org.mariotaku.twidere.model.ParcelableMedia; import org.mariotaku.twidere.model.ParcelableStatus; +import org.mariotaku.twidere.model.ParcelableStatusValuesCreator; import org.mariotaku.twidere.model.ParcelableUser; import org.mariotaku.twidere.model.SingleResponse; import org.mariotaku.twidere.model.message.FavoriteTaskEvent; import org.mariotaku.twidere.model.message.StatusListChangedEvent; import org.mariotaku.twidere.model.util.ParcelableMediaUtils; +import org.mariotaku.twidere.model.util.ParcelableStatusUtils; import org.mariotaku.twidere.model.util.ParcelableUserUtils; +import org.mariotaku.twidere.provider.TwidereDataStore; import org.mariotaku.twidere.provider.TwidereDataStore.Activities; +import org.mariotaku.twidere.provider.TwidereDataStore.CachedStatuses; import org.mariotaku.twidere.provider.TwidereDataStore.Statuses; import org.mariotaku.twidere.util.AsyncTaskUtils; import org.mariotaku.twidere.util.AsyncTwitterWrapper; @@ -1584,11 +1588,13 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac public void onLinkClick(String link, String orig, long accountId, long extraId, int type, boolean sensitive, int start, int end) { final ParcelableStatus status = adapter.getStatus(); ParcelableMedia current; - if ((current = ParcelableMediaUtils.findByUrl(status.media, link)) != null) { + if ((current = ParcelableMediaUtils.findByUrl(status.media, link)) != null && + !current.open_browser) { expandOrOpenMedia(current); return; } - if ((current = ParcelableMediaUtils.findByUrl(status.quoted_media, link)) != null) { + if ((current = ParcelableMediaUtils.findByUrl(status.quoted_media, link)) != null && + !current.open_browser) { expandOrOpenMedia(current); return; } @@ -2432,27 +2438,30 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac } } activitySummary.setRetweeters(retweeters); - final ContentValues statusValues = new ContentValues(); + final ContentValues countValues = new ContentValues(); final Status status = twitter.showStatus(mStatusId); activitySummary.setFavoriteCount(status.getFavoriteCount()); activitySummary.setRetweetCount(status.getRetweetCount()); activitySummary.setReplyCount(status.getReplyCount()); - statusValues.put(Statuses.REPLY_COUNT, activitySummary.replyCount); - statusValues.put(Statuses.FAVORITE_COUNT, activitySummary.favoriteCount); - statusValues.put(Statuses.RETWEET_COUNT, activitySummary.retweetCount); + countValues.put(Statuses.REPLY_COUNT, activitySummary.replyCount); + countValues.put(Statuses.FAVORITE_COUNT, activitySummary.favoriteCount); + countValues.put(Statuses.RETWEET_COUNT, activitySummary.retweetCount); final ContentResolver cr = context.getContentResolver(); final Expression statusWhere = Expression.or( Expression.equals(Statuses.STATUS_ID, mStatusId), Expression.equals(Statuses.RETWEET_ID, mStatusId) ); - cr.update(Statuses.CONTENT_URI, statusValues, statusWhere.getSQL(), null); + cr.update(Statuses.CONTENT_URI, countValues, statusWhere.getSQL(), null); final Expression activityWhere = Expression.or( Expression.equals(Activities.STATUS_ID, mStatusId), Expression.equals(Activities.STATUS_RETWEET_ID, mStatusId) ); + final ParcelableStatus pStatus = ParcelableStatusUtils.fromStatus(status, mAccountId, false); + cr.insert(CachedStatuses.CONTENT_URI, ParcelableStatusValuesCreator.create(pStatus)); + final Cursor activityCursor = cr.query(Activities.AboutMe.CONTENT_URI, Activities.COLUMNS, activityWhere.getSQL(), null, null); assert activityCursor != null; diff --git a/twidere/src/main/java/org/mariotaku/twidere/model/SupportTabSpec.java b/twidere/src/main/java/org/mariotaku/twidere/model/SupportTabSpec.java index 4a937a958..55df0e6d6 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/model/SupportTabSpec.java +++ b/twidere/src/main/java/org/mariotaku/twidere/model/SupportTabSpec.java @@ -29,7 +29,6 @@ import org.mariotaku.twidere.TwidereConstants; import org.mariotaku.twidere.annotation.CustomTabType; import static org.mariotaku.twidere.util.CompareUtils.bundleEquals; -import static org.mariotaku.twidere.util.CompareUtils.classEquals; import static org.mariotaku.twidere.util.CompareUtils.objectEquals; public class SupportTabSpec implements Comparable, TwidereConstants { @@ -74,7 +73,7 @@ public class SupportTabSpec implements Comparable, TwidereConsta public boolean equals(final Object o) { if (!(o instanceof SupportTabSpec)) return false; final SupportTabSpec spec = (SupportTabSpec) o; - return objectEquals(name, spec.name) && objectEquals(icon, spec.icon) && classEquals(cls, spec.cls) + return objectEquals(name, spec.name) && objectEquals(icon, spec.icon) && cls == spec.cls && bundleEquals(args, spec.args) && position == spec.position; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/model/TabSpec.java b/twidere/src/main/java/org/mariotaku/twidere/model/TabSpec.java index a08b9903a..a7099d207 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/model/TabSpec.java +++ b/twidere/src/main/java/org/mariotaku/twidere/model/TabSpec.java @@ -23,7 +23,6 @@ import android.app.Fragment; import android.os.Bundle; import static org.mariotaku.twidere.util.CompareUtils.bundleEquals; -import static org.mariotaku.twidere.util.CompareUtils.classEquals; import static org.mariotaku.twidere.util.CompareUtils.objectEquals; public class TabSpec { @@ -51,7 +50,7 @@ public class TabSpec { public boolean equals(final Object o) { if (!(o instanceof TabSpec)) return false; final TabSpec spec = (TabSpec) o; - return objectEquals(name, spec.name) && objectEquals(icon, spec.icon) && classEquals(cls, spec.cls) + return objectEquals(name, spec.name) && objectEquals(icon, spec.icon) && cls == spec.cls && bundleEquals(args, spec.args) && position == spec.position; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableMediaUtils.java b/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableMediaUtils.java index 0161d371c..081e844c9 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableMediaUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableMediaUtils.java @@ -184,6 +184,7 @@ public class ParcelableMediaUtils { media.media_url = ((CardEntity.ImageValue) photoImageFullSize).getUrl(); media.width = ((CardEntity.ImageValue) photoImageFullSize).getWidth(); media.height = ((CardEntity.ImageValue) photoImageFullSize).getHeight(); + media.open_browser = true; final CardEntity.BindingValue summaryPhotoImage = card.getBindingValue("summary_photo_image"); if (summaryPhotoImage instanceof CardEntity.ImageValue) { media.preview_url = ((CardEntity.ImageValue) summaryPhotoImage).getUrl(); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/CompareUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/CompareUtils.java index 6bc3589ae..365096518 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/CompareUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/CompareUtils.java @@ -34,17 +34,12 @@ public class CompareUtils { return true; } - public static boolean classEquals(final Class cls1, final Class cls2) { - if (cls1 == null || cls2 == null) return cls1 == cls2; - return cls1.getName().equals(cls2.getName()); - } - public static boolean objectEquals(final Object object1, final Object object2) { if (object1 == null || object2 == null) return object1 == object2; if (object1 instanceof Bundle && object2 instanceof Bundle) return bundleEquals((Bundle) object1, (Bundle) object2); else if (object1 instanceof Class && object2 instanceof Class) - return classEquals((Class) object1, (Class) object2); + return object1 == object2; return object1.equals(object2); } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java index 19ef0955f..2c3211014 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/CustomTabUtils.java @@ -61,8 +61,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; -import static org.mariotaku.twidere.util.CompareUtils.classEquals; - public class CustomTabUtils implements Constants { private static final HashMap CUSTOM_TABS_CONFIGURATION_MAP = new HashMap<>(); private static final HashMap CUSTOM_TABS_ICON_NAME_MAP = new HashMap<>(); @@ -132,7 +130,7 @@ public class CustomTabUtils implements Constants { public static String findTabType(final Class cls) { for (final Entry entry : getConfigurationMap().entrySet()) { - if (classEquals(cls, entry.getValue().getFragmentClass())) return entry.getKey(); + if (cls == entry.getValue().getFragmentClass()) return entry.getKey(); } return null; } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/DataImportExportUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/DataImportExportUtils.java index 3792d1d13..87e71dc91 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/DataImportExportUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/DataImportExportUtils.java @@ -122,7 +122,7 @@ public class DataImportExportUtils implements Constants { final HashMap supportedPrefsMap = new HashMap<>(); for (final Field field : fields) { final Preference annotation = field.getAnnotation(Preference.class); - if (Modifier.isStatic(field.getModifiers()) && CompareUtils.classEquals(field.getType(), String.class) + if (Modifier.isStatic(field.getModifiers()) && field.getType() == String.class && annotation != null && annotation.exportable() && annotation.type() != PreferenceType.INVALID) { try { supportedPrefsMap.put((String) field.get(null), annotation); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java index 16787ef7c..fab45558f 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java @@ -48,7 +48,6 @@ import org.mariotaku.sqliteqb.library.Tables; import org.mariotaku.sqliteqb.library.query.SQLSelectQuery; import org.mariotaku.twidere.Constants; import org.mariotaku.twidere.TwidereConstants; -import org.mariotaku.twidere.annotation.CustomTabType; import org.mariotaku.twidere.api.twitter.model.Activity; import org.mariotaku.twidere.model.ParcelableAccount; import org.mariotaku.twidere.model.ParcelableAccountCursorIndices; @@ -960,13 +959,8 @@ public class DataStoreUtils implements Constants { return accounts; } - public static int getInteractionsCount(final Context context, final ReadStateManager readStateManager, - @CustomTabType final String tag, @Nullable final Bundle extraArgs, - final long[] accountIds) { - final String tagWithAccounts = Utils.getReadPositionTagWithAccounts(context, - true, tag, accountIds); - final long position = readStateManager.getPosition(tagWithAccounts); - + public static int getInteractionsCount(final Context context, @Nullable final Bundle extraArgs, + final long[] accountIds, final long position) { Expression extraWhere = null; String[] extraWhereArgs = null; boolean followingOnly = false; diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/ReadStateManager.java b/twidere/src/main/java/org/mariotaku/twidere/util/ReadStateManager.java index b7d03628b..209bdd881 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/ReadStateManager.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/ReadStateManager.java @@ -27,6 +27,7 @@ import android.support.annotation.Nullable; import android.text.TextUtils; import org.mariotaku.twidere.Constants; +import org.mariotaku.twidere.annotation.CustomTabType; import org.mariotaku.twidere.annotation.NotificationType; import org.mariotaku.twidere.annotation.ReadPositionTag; import org.mariotaku.twidere.model.StringLongPair; @@ -167,6 +168,12 @@ public class ReadStateManager implements Constants { public static String getReadPositionTagForNotificationType(@NotificationType String notificationType) { if (notificationType == null) return null; switch (notificationType) { + case NotificationType.HOME_TIMELINE: { + return ReadPositionTag.HOME_TIMELINE; + } + case NotificationType.DIRECT_MESSAGES: { + return ReadPositionTag.DIRECT_MESSAGES; + } case NotificationType.INTERACTIONS: { return ReadPositionTag.ACTIVITIES_ABOUT_ME; } @@ -174,4 +181,22 @@ public class ReadStateManager implements Constants { return null; } + @Nullable + @ReadPositionTag + public static String getReadPositionTagForTabType(@CustomTabType String tabType) { + if (tabType == null) return null; + switch (tabType) { + case CustomTabType.HOME_TIMELINE: { + return ReadPositionTag.HOME_TIMELINE; + } + case CustomTabType.NOTIFICATIONS_TIMELINE: { + return ReadPositionTag.ACTIVITIES_ABOUT_ME; + } + case CustomTabType.DIRECT_MESSAGES: { + return ReadPositionTag.DIRECT_MESSAGES; + } + } + return null; + } + } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java index e758727d6..ddda15ac0 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java @@ -813,7 +813,7 @@ public final class Utils implements Constants { @Nullable public static String getReadPositionTagWithAccounts(Context context, boolean activatedIfMissing, - @Nullable String tag, + @Nullable @ReadPositionTag String tag, long... accountIds) { if (tag == null) return null; if (accountIds == null || accountIds.length == 0 || (accountIds.length == 1 && accountIds[0] < 0)) {