From 76547896babb938b87ff35446f884fafe387bc61 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Sat, 2 Jan 2016 20:23:55 +0800 Subject: [PATCH] activities about me supports my following only limitation --- twidere/src/main/AndroidManifest.xml | 5 - .../activity/support/MediaViewerActivity.java | 82 ++++----- ...agment.java => CacheDownloadFragment.java} | 28 +-- .../model/util/ParcelableActivityUtils.java | 2 +- .../provider/TwidereCommandProvider.java | 171 ------------------ .../twidere/provider/TwidereCommands.java | 133 -------------- .../mariotaku/twidere/util/IntentUtils.java | 25 +++ .../org/mariotaku/twidere/util/Utils.java | 16 +- .../twidere/util/dagger/GeneralComponent.java | 7 +- 9 files changed, 86 insertions(+), 383 deletions(-) rename twidere/src/main/java/org/mariotaku/twidere/fragment/support/{DownloadingMediaPageFragment.java => CacheDownloadFragment.java} (91%) delete mode 100644 twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommandProvider.java delete mode 100644 twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommands.java create mode 100644 twidere/src/main/java/org/mariotaku/twidere/util/IntentUtils.java diff --git a/twidere/src/main/AndroidManifest.xml b/twidere/src/main/AndroidManifest.xml index 18e615a8d..3e3ee45d0 100644 --- a/twidere/src/main/AndroidManifest.xml +++ b/twidere/src/main/AndroidManifest.xml @@ -521,11 +521,6 @@ android:grantUriPermissions="true" android:label="@string/label_data_provider" tools:ignore="ExportedContentProvider"/> - , OnClickListener { private GifTextureView mGifImageView; @@ -392,22 +395,7 @@ public final class MediaViewerActivity extends BaseAppCompatActivity implements } @Override - protected void displayMedia(Result data) { -// if (data.hasData() && "image/gif".equals(data.options.outMimeType)) { -// mGifImageView.setVisibility(View.VISIBLE); -// setImageViewVisibility(View.GONE); -// mGifImageView.setInputSource(new InS(data.file)); -// setLoadProgressVisibility(View.GONE); -// setLoadProgress(0); -// invalidateOptionsMenu(); -// return; -// } - super.displayMedia(data); - } - - - @Override - protected boolean hasValidMedia() { + protected boolean isAbleToLoad() { return true; } @@ -453,9 +441,9 @@ public final class MediaViewerActivity extends BaseAppCompatActivity implements } case ParcelableMedia.TYPE_IMAGE: { if (ANIMATED_GIF_SUPPORTED) { - return Fragment.instantiate(mActivity, ImagePageFragment.class.getName(), args); + return Fragment.instantiate(mActivity, GifSupportedImagePageFragment.class.getName(), args); } - return Fragment.instantiate(mActivity, BaseImagePageFragment.class.getName(), args); + return Fragment.instantiate(mActivity, ImagePageFragment.class.getName(), args); } case ParcelableMedia.TYPE_EXTERNAL_PLAYER: { return TwitterCardFragmentFactory.createGenericPlayerFragment(media.card); @@ -475,7 +463,7 @@ public final class MediaViewerActivity extends BaseAppCompatActivity implements public static class UnsupportedPageFragment extends Fragment { } - private static abstract class MediaPageFragment extends DownloadingMediaPageFragment implements + private static abstract class MediaPageFragment extends CacheDownloadFragment implements LoaderCallbacks, Listener { protected final ParcelableMedia getMedia() { @@ -533,18 +521,19 @@ public final class MediaViewerActivity extends BaseAppCompatActivity implements } @Override - protected boolean hasValidMedia() { - return true; + protected boolean isAbleToLoad() { + return getDownloadUri() != null; } @Override - protected Uri getMediaUrl() { + protected Uri getDownloadUri() { final Pair bestVideoUrlAndType = getBestVideoUrlAndType(getMedia()); + if (bestVideoUrlAndType == null || bestVideoUrlAndType.first == null) return null; return Uri.parse(bestVideoUrlAndType.first); } @Override - protected void displayMedia(Result data) { + protected void displayDownloaded(Result data) { mVideoView.setVideoURI(data.cacheUri); } @@ -657,7 +646,7 @@ public final class MediaViewerActivity extends BaseAppCompatActivity implements mPlayPauseButton.setOnClickListener(this); mVolumeButton.setOnClickListener(this); - loadMedia(); + startLoading(); updateVolume(); } @@ -740,15 +729,24 @@ public final class MediaViewerActivity extends BaseAppCompatActivity implements inflater.inflate(R.menu.menu_media_viewer_video_page, menu); } + @Override + public void onPrepareOptionsMenu(Menu menu) { + final boolean isLoading = getLoaderManager().hasRunningLoaders(); + final boolean isDownloaded = hasDownloadedData(); + MenuUtils.setMenuItemAvailability(menu, R.id.save, !isLoading && isDownloaded); + MenuUtils.setMenuItemAvailability(menu, R.id.share, !isLoading && isDownloaded); + MenuUtils.setMenuItemAvailability(menu, R.id.refresh, !isLoading && !isDownloaded); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.save: { - requestAndSaveToGallery(); + requestAndSaveToStorage(); return true; } case R.id.refresh: { - loadMedia(); + startLoading(); return true; } case R.id.share: { diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/DownloadingMediaPageFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/CacheDownloadFragment.java similarity index 91% rename from twidere/src/main/java/org/mariotaku/twidere/fragment/support/DownloadingMediaPageFragment.java rename to twidere/src/main/java/org/mariotaku/twidere/fragment/support/CacheDownloadFragment.java index 31a199804..776e4639a 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/DownloadingMediaPageFragment.java +++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/CacheDownloadFragment.java @@ -40,7 +40,7 @@ import javax.inject.Inject; /** * Created by mariotaku on 16/1/2. */ -public abstract class DownloadingMediaPageFragment extends BaseSupportFragment implements LoaderManager.LoaderCallbacks, CacheDownloadLoader.Listener { +public abstract class CacheDownloadFragment extends BaseSupportFragment implements LoaderManager.LoaderCallbacks, CacheDownloadLoader.Listener { protected static final int REQUEST_SHARE_MEDIA = 201; private boolean mLoaderInitialized; @@ -61,6 +61,10 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i } } + protected boolean hasDownloadedData() { + return mData != null && mData.cacheUri != null; + } + @Override public final void onDownloadError(Throwable t) { hideProgress(); @@ -85,7 +89,7 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i switch (requestCode) { case REQUEST_REQUEST_PERMISSIONS: { if (PermissionUtils.hasPermission(permissions, grantResults, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - saveToGallery(); + saveToStorage(); } else { Toast.makeText(getContext(), R.string.save_media_no_storage_permission_message, Toast.LENGTH_LONG).show(); } @@ -102,11 +106,11 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i @Override public final Loader onCreateLoader(int id, Bundle args) { - return new CacheDownloadLoader(getContext(), new MediaDownloader(getContext()), this, getMediaUrl()); + return new CacheDownloadLoader(getContext(), new MediaDownloader(getContext()), this, getDownloadUri()); } - protected final void saveToGallery() { + protected final void saveToStorage() { if (mData == null) return; if (mSaveFileTask != null && mSaveFileTask.getStatus() == AsyncTask.Status.RUNNING) return; final Uri cacheUri = mData.cacheUri; @@ -116,8 +120,8 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i AsyncTaskUtils.executeTask(mSaveFileTask); } - public final void loadMedia() { - if (!hasValidMedia()) return; + public final void startLoading() { + if (!isAbleToLoad()) return; getLoaderManager().destroyLoader(0); if (!mLoaderInitialized) { getLoaderManager().initLoader(0, null, this); @@ -127,7 +131,7 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i } } - protected abstract boolean hasValidMedia(); + protected abstract boolean isAbleToLoad(); protected final void shareMedia() { @@ -190,9 +194,9 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i task.execute(); } - protected final void requestAndSaveToGallery() { + protected final void requestAndSaveToStorage() { if (PermissionUtils.hasPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - saveToGallery(); + saveToStorage(); } else { final String[] permissions; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { @@ -205,16 +209,16 @@ public abstract class DownloadingMediaPageFragment extends BaseSupportFragment i } } - protected abstract Uri getMediaUrl(); + protected abstract Uri getDownloadUri(); @Override public final void onLoadFinished(Loader loader, @NonNull CacheDownloadLoader.Result data) { mData = data; hideProgress(); - displayMedia(data); + displayDownloaded(data); } - protected abstract void displayMedia(CacheDownloadLoader.Result data); + protected abstract void displayDownloaded(CacheDownloadLoader.Result data); @Override public final void onLoaderReset(Loader loader) { diff --git a/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableActivityUtils.java b/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableActivityUtils.java index 1bbebe599..ff1b3e0ad 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableActivityUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/model/util/ParcelableActivityUtils.java @@ -11,7 +11,7 @@ import org.mariotaku.twidere.model.ParcelableUser; public class ParcelableActivityUtils { public static void getAfterFilteredSourceIds(ParcelableActivity activity, long[] filteredUserIds, boolean followingOnly) { if (activity.after_filtered_source_ids != null) return; - if (!ArrayUtils.isEmpty(filteredUserIds)) { + if (followingOnly || !ArrayUtils.isEmpty(filteredUserIds)) { ArrayLongList list = new ArrayLongList(); for (ParcelableUser user : activity.sources) { if (followingOnly && !user.is_following) { diff --git a/twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommandProvider.java b/twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommandProvider.java deleted file mode 100644 index 1efd7e58b..000000000 --- a/twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommandProvider.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Twidere - Twitter client for Android - * - * Copyright (C) 2012-2014 Mariotaku Lee - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.mariotaku.twidere.provider; - -import android.content.ContentProvider; -import android.content.ContentValues; -import android.content.Context; -import android.content.UriMatcher; -import android.database.Cursor; -import android.database.MatrixCursor; -import android.net.Uri; -import android.support.annotation.NonNull; -import android.util.Log; - -import org.mariotaku.twidere.Constants; -import org.mariotaku.twidere.provider.TwidereCommands.Refresh; -import org.mariotaku.twidere.util.AsyncTwitterWrapper; -import org.mariotaku.twidere.util.PermissionsManager; -import org.mariotaku.twidere.util.dagger.GeneralComponentHelper; - -import javax.inject.Inject; - -public class TwidereCommandProvider extends ContentProvider implements Constants { - - private static final UriMatcher COMMAND_URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH); - - private static final int CODE_REFRESH_ALL = 10; - private static final int CODE_REFRESH_HOME_TIMELINE = 11; - private static final int CODE_REFRESH_MENTIONS = 12; - private static final int CODE_REFRESH_INBOX = 13; - private static final int CODE_REFRESH_OUTBOX = 14; - - static { - COMMAND_URI_MATCHER.addURI(TwidereCommands.AUTHORITY, Refresh.ACTION_REFRESH_ALL, CODE_REFRESH_ALL); - } - - private Context mContext; - private PermissionsManager mPermissionsManager; - @Inject - AsyncTwitterWrapper mTwitterWrapper; - - @Override - public int delete(@NonNull final Uri uri, final String where, final String[] whereArgs) { - return 0; - } - - @Override - public String getType(@NonNull final Uri uri) { - return null; - } - - @Override - public Uri insert(@NonNull final Uri uri, final ContentValues values) { - if (handleInsertCommand(uri, values)) return uri; - return null; - } - - @Override - public boolean onCreate() { - mContext = getContext(); - GeneralComponentHelper.build(mContext).inject(this); - mPermissionsManager = new PermissionsManager(mContext); - return true; - } - - @Override - public Cursor query(@NonNull final Uri uri, final String[] projection, final String where, final String[] whereArgs, - final String sortOrder) { - return handleQueryCommand(uri); - } - - @Override - public int update(@NonNull final Uri uri, final ContentValues values, final String where, final String[] whereArgs) { - return 0; - } - - private void checkInsertPermission(final int uri_code) { - switch (uri_code) { - case CODE_REFRESH_ALL: - case CODE_REFRESH_HOME_TIMELINE: - case CODE_REFRESH_MENTIONS: - case CODE_REFRESH_INBOX: - case CODE_REFRESH_OUTBOX: { - if (!mPermissionsManager.checkCallingPermission(PERMISSION_REFRESH)) - throw new SecurityException("Executing this command requires level PERMISSION_REFRESH"); - } - } - } - - private void checkQueryPermission(final int uri_code) { - switch (uri_code) { - case CODE_REFRESH_ALL: - case CODE_REFRESH_HOME_TIMELINE: - case CODE_REFRESH_MENTIONS: - case CODE_REFRESH_INBOX: - case CODE_REFRESH_OUTBOX: { - if (!mPermissionsManager.checkCallingPermission(PERMISSION_REFRESH)) - throw new SecurityException("Executing this command requires level PERMISSION_REFRESH"); - } - } - } - - private Cursor getEmptyCursor() { - return new MatrixCursor(new String[0]); - } - - private boolean handleInsertCommand(final Uri uri, final ContentValues values) { - final int uri_code = COMMAND_URI_MATCHER.match(uri); - checkInsertPermission(uri_code); - try { - switch (uri_code) { - case CODE_REFRESH_ALL: { - mTwitterWrapper.refreshAll(); - break; - } - default: - return false; - } - // something blah blah blah - } catch (final RuntimeException e) { - Log.w(LOGTAG, e); - if (Thread.currentThread().getId() != 1) - throw new IllegalStateException("This method cannot be called from non-UI thread"); - } - return true; - } - - private Cursor handleQueryCommand(final Uri uri) { - final int uri_code = COMMAND_URI_MATCHER.match(uri); - checkQueryPermission(uri_code); - try { - switch (uri_code) { - case CODE_REFRESH_HOME_TIMELINE: - if (mTwitterWrapper.isHomeTimelineRefreshing()) return getEmptyCursor(); - case CODE_REFRESH_MENTIONS: - if (mTwitterWrapper.isMentionsTimelineRefreshing()) return getEmptyCursor(); - case CODE_REFRESH_INBOX: - if (mTwitterWrapper.isReceivedDirectMessagesRefreshing()) - return getEmptyCursor(); - case CODE_REFRESH_OUTBOX: - if (mTwitterWrapper.isSentDirectMessagesRefreshing()) return getEmptyCursor(); - default: - return null; - } - // something blah blah blah - } catch (final RuntimeException e) { - Log.w(LOGTAG, e); - if (Thread.currentThread().getId() != 1) - throw new IllegalStateException("This method cannot be called from non-UI thread"); - } - return null; - } - -} diff --git a/twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommands.java b/twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommands.java deleted file mode 100644 index 3f4fc3013..000000000 --- a/twidere/src/main/java/org/mariotaku/twidere/provider/TwidereCommands.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Twidere - Twitter client for Android - * - * Copyright (C) 2012-2014 Mariotaku Lee - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.mariotaku.twidere.provider; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; - -import org.mariotaku.twidere.Constants; -import org.mariotaku.twidere.model.ParcelableLocation; -import org.mariotaku.twidere.util.ParseUtils; -import org.mariotaku.twidere.util.TwidereArrayUtils; - -public class TwidereCommands { - - public static final String AUTHORITY = "twidere.command"; - - public static final Uri BASE_CONTENT_URI = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT) - .authority(AUTHORITY).build(); - public static final String EXTRA_IN_REPLY_TO_STATUS_ID = "in_reply_to_status_id"; - public static final String EXTRA_IS_POSSIBLY_SENSITIVE = "is_possibly_sensitive"; - public static final String EXTRA_DELETE_IMAGE = "delete_image"; - - public static class DirectMessage { - - public static final String ACTION_SEND_DIRECT_MESSAGE = "send_direct_message"; - } - - public static class Refresh { - - public static final String ACTION_REFRESH_ALL = "refresh_all"; - public static final String ACTION_REFRESH_HOME_TIMELINE = "refresh_home_timeline"; - public static final String ACTION_REFRESH_MENTIONS = "refresh_mentions"; - public static final String ACTION_REFRESH_INBOX = "refresh_inbox"; - public static final String ACTION_REFRESH_OUTBOX = "refresh_inbox"; - - public static boolean isHomeTimelineRefreshing(final Context context) { - return Utils.isQueryCommandTrue(context, ACTION_REFRESH_HOME_TIMELINE); - } - - public static boolean isInboxRefreshing(final Context context) { - return Utils.isQueryCommandTrue(context, ACTION_REFRESH_INBOX); - } - - public static boolean isMentionsRefreshing(final Context context) { - return Utils.isQueryCommandTrue(context, ACTION_REFRESH_MENTIONS); - } - - public static boolean isOutboxRefreshing(final Context context) { - return Utils.isQueryCommandTrue(context, ACTION_REFRESH_OUTBOX); - } - - public static void refreshAll(final Context context) { - Utils.sendInsertCommand(context, ACTION_REFRESH_ALL, null); - } - - public static void refreshHomeTimeline(final Context context) { - Utils.sendInsertCommand(context, ACTION_REFRESH_HOME_TIMELINE, null); - } - - public static void refreshInbox(final Context context) { - Utils.sendInsertCommand(context, ACTION_REFRESH_INBOX, null); - } - - public static void refreshMentions(final Context context) { - Utils.sendInsertCommand(context, ACTION_REFRESH_MENTIONS, null); - } - - public static void refreshOutbox(final Context context) { - Utils.sendInsertCommand(context, ACTION_REFRESH_OUTBOX, null); - } - } - - public static class Send { - - public static final String ACTION_UPDATE_STATUS = "update_status"; - - public void updateStatus(final Context context, final long[] account_ids, final String content, - final ParcelableLocation location, final Uri image_uri, final long in_reply_to_status_id, - final boolean is_possibly_sensitive, final boolean delete_image) { - final ContentValues values = new ContentValues(); - values.put(Constants.EXTRA_ACCOUNT_IDS, TwidereArrayUtils.toString(account_ids, ',', false)); - values.put(Constants.EXTRA_TEXT, content); - values.put(Constants.EXTRA_LOCATION, ParcelableLocation.toString(location)); - values.put(Constants.EXTRA_URI, ParseUtils.parseString(image_uri)); - values.put(EXTRA_IN_REPLY_TO_STATUS_ID, in_reply_to_status_id); - values.put(EXTRA_IS_POSSIBLY_SENSITIVE, is_possibly_sensitive); - values.put(EXTRA_DELETE_IMAGE, delete_image); - Utils.sendInsertCommand(context, ACTION_UPDATE_STATUS, values); - } - } - - private final static class Utils { - - private static boolean isQueryCommandTrue(final Context context, final String action) { - final Cursor cur = sendQueryCommand(context, action); - if (cur == null) return false; - cur.close(); - return true; - } - - private static Uri sendInsertCommand(final Context context, final String action, final ContentValues values) { - final ContentResolver resolver = context.getContentResolver(); - final Uri uri = Uri.withAppendedPath(BASE_CONTENT_URI, action); - return resolver.insert(uri, values != null ? values : new ContentValues()); - } - - private static Cursor sendQueryCommand(final Context context, final String action) { - final ContentResolver resolver = context.getContentResolver(); - final Uri uri = Uri.withAppendedPath(BASE_CONTENT_URI, action); - return resolver.query(uri, null, null, null, null); - } - } -} diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/IntentUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/IntentUtils.java new file mode 100644 index 000000000..6bd34d27c --- /dev/null +++ b/twidere/src/main/java/org/mariotaku/twidere/util/IntentUtils.java @@ -0,0 +1,25 @@ +package org.mariotaku.twidere.util; + +import android.content.Context; +import android.net.Uri; +import android.support.annotation.NonNull; + +import org.mariotaku.twidere.R; +import org.mariotaku.twidere.model.ParcelableStatus; + +/** + * Created by mariotaku on 16/1/2. + */ +public class IntentUtils { + public static String getStatusShareText(@NonNull final Context context, @NonNull final ParcelableStatus status) { + final Uri link = LinkCreator.getTwitterStatusLink(status); + return context.getString(R.string.status_share_text_format_with_link, + status.text_plain, link.toString()); + } + + public static String getStatusShareSubject(@NonNull final Context context, @NonNull final ParcelableStatus status) { + final String timeString = Utils.formatToLongTimeString(context, status.timestamp); + return context.getString(R.string.status_share_subject_format_with_time, + status.user_name, status.user_screen_name, timeString); + } +} 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 ece1b9a17..d7aa0e819 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java @@ -924,8 +924,8 @@ public final class Utils implements Constants { public static Intent createStatusShareIntent(@NonNull final Context context, @NonNull final ParcelableStatus status) { final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); - intent.putExtra(Intent.EXTRA_SUBJECT, getStatusShareSubject(context, status)); - intent.putExtra(Intent.EXTRA_TEXT, getStatusShareText(context, status)); + intent.putExtra(Intent.EXTRA_SUBJECT, IntentUtils.getStatusShareSubject(context, status)); + intent.putExtra(Intent.EXTRA_TEXT, IntentUtils.getStatusShareText(context, status)); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); return intent; } @@ -967,18 +967,6 @@ public final class Utils implements Constants { return tag + "_" + TwidereArrayUtils.toString(accountIdsClone, '_', false); } - public static String getStatusShareText(@NonNull final Context context, @NonNull final ParcelableStatus status) { - final Uri link = LinkCreator.getTwitterStatusLink(status); - return context.getString(R.string.status_share_text_format_with_link, - status.text_plain, link.toString()); - } - - public static String getStatusShareSubject(@NonNull final Context context, @NonNull final ParcelableStatus status) { - final String timeString = formatToLongTimeString(context, status.timestamp); - return context.getString(R.string.status_share_subject_format_with_time, - status.user_name, status.user_screen_name, timeString); - } - public static String encodeQueryParams(final String value) throws IOException { final String encoded = URLEncoder.encode(value, "UTF-8"); final StringBuilder buf = new StringBuilder(); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/dagger/GeneralComponent.java b/twidere/src/main/java/org/mariotaku/twidere/util/dagger/GeneralComponent.java index f13efeebd..745507905 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/dagger/GeneralComponent.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/dagger/GeneralComponent.java @@ -40,12 +40,11 @@ import org.mariotaku.twidere.fragment.BasePreferenceFragment; import org.mariotaku.twidere.fragment.support.AccountsDashboardFragment; import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment; import org.mariotaku.twidere.fragment.support.BaseSupportFragment; -import org.mariotaku.twidere.fragment.support.DownloadingMediaPageFragment; +import org.mariotaku.twidere.fragment.support.CacheDownloadFragment; import org.mariotaku.twidere.fragment.support.MessagesConversationFragment; import org.mariotaku.twidere.loader.support.CacheDownloadLoader; import org.mariotaku.twidere.preference.AccountsListPreference; import org.mariotaku.twidere.provider.CacheProvider; -import org.mariotaku.twidere.provider.TwidereCommandProvider; import org.mariotaku.twidere.provider.TwidereDataProvider; import org.mariotaku.twidere.service.BackgroundOperationService; import org.mariotaku.twidere.service.RefreshService; @@ -84,8 +83,6 @@ public interface GeneralComponent { void inject(ThemedFragmentActivity object); - void inject(TwidereCommandProvider object); - void inject(TwidereDataProvider object); void inject(BaseListFragment object); @@ -134,5 +131,5 @@ public interface GeneralComponent { void inject(CacheProvider object); - void inject(DownloadingMediaPageFragment.MediaDownloader object); + void inject(CacheDownloadFragment.MediaDownloader object); }