From 3ef40e2e53f32823e9c1716674870ea711bb01da Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Tue, 6 Oct 2015 21:36:51 +0800 Subject: [PATCH] trying to fix NoDisplay theme crashes on Marshmallow --- twidere/build.gradle | 2 +- .../CreateComposeShortcutActivity.java | 1 + .../twidere/activity/MainActivity.java | 1 + .../activity/UsageStatisticsActivity.java | 1 + .../support/ColorPickerDialogActivity.java | 84 ++++---- .../activity/support/DataExportActivity.java | 204 +++++++++--------- .../activity/support/DataImportActivity.java | 6 + .../support/FileSelectorActivity.java | 6 + .../support/ThemedImagePickerActivity.java | 6 + .../twidere/app/TwidereApplication.java | 6 +- .../twidere/util/TwitterAPIFactory.java | 12 +- .../util/dagger/ApplicationModule.java | 22 +- .../imageloader/TwidereImageDownloader.java | 10 +- .../twidere/util/net/OkHttpRestClient.java | 5 + 14 files changed, 213 insertions(+), 153 deletions(-) diff --git a/twidere/build.gradle b/twidere/build.gradle index 7c4c56aaa..648f6f2bb 100644 --- a/twidere/build.gradle +++ b/twidere/build.gradle @@ -47,7 +47,7 @@ android { } repositories { - maven { url 'http://repo.commonsware.com.s3.amazonaws.com' } + maven { url 'https://repo.commonsware.com.s3.amazonaws.com' } } configurations { diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/CreateComposeShortcutActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/CreateComposeShortcutActivity.java index 4caa9d6c1..efd6ec995 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/CreateComposeShortcutActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/CreateComposeShortcutActivity.java @@ -32,6 +32,7 @@ public class CreateComposeShortcutActivity extends Activity implements Constants @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setVisible(true); final Intent intent = new Intent(); final Intent launch_intent = new Intent(INTENT_ACTION_COMPOSE); final ShortcutIconResource icon = Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher); diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/MainActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/MainActivity.java index 698c022d8..e09a403c9 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/MainActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/MainActivity.java @@ -45,6 +45,7 @@ public class MainActivity extends Activity implements Constants { } ThemeUtils.overrideActivityOpenAnimation(this); super.onCreate(savedInstanceState); + setVisible(true); final Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(intent); diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/UsageStatisticsActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/UsageStatisticsActivity.java index 4e0f9adad..30d39c5d8 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/UsageStatisticsActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/UsageStatisticsActivity.java @@ -33,6 +33,7 @@ public class UsageStatisticsActivity extends Activity implements Constants { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setVisible(true); final Bundle fragmentArgs = new Bundle(); fragmentArgs.putInt(EXTRA_RESID, R.xml.preferences_usage_statistics); final Intent intent = new Intent(this, SettingsActivity.class); diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/ColorPickerDialogActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/ColorPickerDialogActivity.java index 9fb4c36b3..37a78e244 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/ColorPickerDialogActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/ColorPickerDialogActivity.java @@ -29,50 +29,56 @@ import org.mariotaku.twidere.util.ThemeUtils; public class ColorPickerDialogActivity extends BaseSupportDialogActivity implements Callback { - public static final int RESULT_CLEARED = -2; + public static final int RESULT_CLEARED = -2; - @Override - public int getThemeResourceId() { - return ThemeUtils.getNoDisplayThemeResource(this); - } + @Override + public int getThemeResourceId() { + return ThemeUtils.getNoDisplayThemeResource(this); + } - @Override - public void onCancelled() { - finish(); - } + @Override + public void onCancelled() { + finish(); + } - @Override - public void onColorCleared() { - setResult(RESULT_CLEARED); - finish(); - } + @Override + protected void onStart() { + super.onStart(); + setVisible(true); + } - @Override - public void onColorSelected(final int color) { - final Intent intent = new Intent(); - intent.putExtra(EXTRA_COLOR, color); - setResult(RESULT_OK, intent); - finish(); - } + @Override + public void onColorCleared() { + setResult(RESULT_CLEARED); + finish(); + } - @Override - public void onDismissed() { - finish(); - } + @Override + public void onColorSelected(final int color) { + final Intent intent = new Intent(); + intent.putExtra(EXTRA_COLOR, color); + setResult(RESULT_OK, intent); + finish(); + } - @Override - protected void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (savedInstanceState == null) { - final Intent intent = getIntent(); - final ColorPickerDialogFragment f = new ColorPickerDialogFragment(); - final Bundle args = new Bundle(); - args.putInt(EXTRA_COLOR, intent.getIntExtra(EXTRA_COLOR, Color.WHITE)); - args.putBoolean(EXTRA_CLEAR_BUTTON, intent.getBooleanExtra(EXTRA_CLEAR_BUTTON, false)); - args.putBoolean(EXTRA_ALPHA_SLIDER, intent.getBooleanExtra(EXTRA_ALPHA_SLIDER, true)); - f.setArguments(args); - f.show(getSupportFragmentManager(), "color_picker_dialog"); - } - } + @Override + public void onDismissed() { + finish(); + } + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (savedInstanceState == null) { + final Intent intent = getIntent(); + final ColorPickerDialogFragment f = new ColorPickerDialogFragment(); + final Bundle args = new Bundle(); + args.putInt(EXTRA_COLOR, intent.getIntExtra(EXTRA_COLOR, Color.WHITE)); + args.putBoolean(EXTRA_CLEAR_BUTTON, intent.getBooleanExtra(EXTRA_CLEAR_BUTTON, false)); + args.putBoolean(EXTRA_ALPHA_SLIDER, intent.getBooleanExtra(EXTRA_ALPHA_SLIDER, true)); + f.setArguments(args); + f.show(getSupportFragmentManager(), "color_picker_dialog"); + } + } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataExportActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataExportActivity.java index 8205684c7..3b8e7b861 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataExportActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataExportActivity.java @@ -20,9 +20,9 @@ import java.util.Date; import java.util.Locale; public class DataExportActivity extends ThemedFragmentActivity implements FileSelectorDialogFragment.Callback, - DataExportImportTypeSelectorDialogFragment.Callback { + DataExportImportTypeSelectorDialogFragment.Callback { - private ExportSettingsTask mTask; + private ExportSettingsTask mTask; @Override public int getThemeColor() { @@ -30,113 +30,119 @@ public class DataExportActivity extends ThemedFragmentActivity implements FileSe } @Override - public int getThemeResourceId() { - return ThemeUtils.getNoDisplayThemeResource(this); - } + public int getThemeResourceId() { + return ThemeUtils.getNoDisplayThemeResource(this); + } - @Override - public void onCancelled(final DialogFragment df) { - if (!isFinishing()) { - finish(); - } - } + @Override + public void onCancelled(final DialogFragment df) { + if (!isFinishing()) { + finish(); + } + } - @Override - public void onDismissed(final DialogFragment df) { - if (df instanceof DataExportImportTypeSelectorDialogFragment) { - finish(); - } - } + @Override + public void onDismissed(final DialogFragment df) { + if (df instanceof DataExportImportTypeSelectorDialogFragment) { + finish(); + } + } - @Override - public void onFilePicked(final File file) { - if (file == null) { - finish(); - return; - } - final DialogFragment df = new DataExportImportTypeSelectorDialogFragment(); - final Bundle args = new Bundle(); - args.putString(EXTRA_PATH, file.getAbsolutePath()); - args.putString(EXTRA_TITLE, getString(R.string.export_settings_type_dialog_title)); - df.setArguments(args); - df.show(getSupportFragmentManager(), "select_export_type"); - } + @Override + public void onFilePicked(final File file) { + if (file == null) { + finish(); + return; + } + final DialogFragment df = new DataExportImportTypeSelectorDialogFragment(); + final Bundle args = new Bundle(); + args.putString(EXTRA_PATH, file.getAbsolutePath()); + args.putString(EXTRA_TITLE, getString(R.string.export_settings_type_dialog_title)); + df.setArguments(args); + df.show(getSupportFragmentManager(), "select_export_type"); + } - @Override - public void onPositiveButtonClicked(final String path, final int flags) { - if (path == null || flags == 0) { - finish(); - return; - } - if (mTask == null || mTask.getStatus() != AsyncTask.Status.RUNNING) { - mTask = new ExportSettingsTask(this, path, flags); - mTask.execute(); - } - } + @Override + public void onPositiveButtonClicked(final String path, final int flags) { + if (path == null || flags == 0) { + finish(); + return; + } + if (mTask == null || mTask.getStatus() != AsyncTask.Status.RUNNING) { + mTask = new ExportSettingsTask(this, path, flags); + mTask.execute(); + } + } - @Override - protected void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (savedInstanceState == null) { - final File extStorage = Environment.getExternalStorageDirectory(); - final String storagePath = extStorage != null ? extStorage.getAbsolutePath() : "/"; - final FileSelectorDialogFragment f = new FileSelectorDialogFragment(); - final Bundle args = new Bundle(); - args.putString(EXTRA_ACTION, INTENT_ACTION_PICK_DIRECTORY); - args.putString(EXTRA_PATH, storagePath); - f.setArguments(args); - f.show(getSupportFragmentManager(), "select_file"); - } - } + @Override + protected void onStart() { + super.onStart(); + setVisible(true); + } - static class ExportSettingsTask extends AsyncTask { - private static final String FRAGMENT_TAG = "import_settings_dialog"; + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (savedInstanceState == null) { + final File extStorage = Environment.getExternalStorageDirectory(); + final String storagePath = extStorage != null ? extStorage.getAbsolutePath() : "/"; + final FileSelectorDialogFragment f = new FileSelectorDialogFragment(); + final Bundle args = new Bundle(); + args.putString(EXTRA_ACTION, INTENT_ACTION_PICK_DIRECTORY); + args.putString(EXTRA_PATH, storagePath); + f.setArguments(args); + f.show(getSupportFragmentManager(), "select_file"); + } + } - private final DataExportActivity mActivity; - private final String mPath; - private final int mFlags; + static class ExportSettingsTask extends AsyncTask { + private static final String FRAGMENT_TAG = "import_settings_dialog"; - ExportSettingsTask(final DataExportActivity activity, final String path, final int flags) { - mActivity = activity; - mPath = path; - mFlags = flags; - } + private final DataExportActivity mActivity; + private final String mPath; + private final int mFlags; - @Override - protected Boolean doInBackground(final Object... params) { - if (mPath == null) return false; - final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.US); - final String fileName = String.format("Twidere_Settings_%s.zip", sdf.format(new Date())); - final File file = new File(mPath, fileName); - file.delete(); - try { - DataImportExportUtils.exportData(mActivity, file, mFlags); - return true; - } catch (final IOException e) { - e.printStackTrace(); - } - return false; - } + ExportSettingsTask(final DataExportActivity activity, final String path, final int flags) { + mActivity = activity; + mPath = path; + mFlags = flags; + } - @Override - protected void onPostExecute(final Boolean result) { - final FragmentManager fm = mActivity.getSupportFragmentManager(); - final DialogFragment f = (DialogFragment) fm.findFragmentByTag(FRAGMENT_TAG); - if (f != null) { - f.dismiss(); - } - if (result != null && result) { - mActivity.setResult(RESULT_OK); - } else { - mActivity.setResult(RESULT_CANCELED); - } - mActivity.finish(); - } + @Override + protected Boolean doInBackground(final Object... params) { + if (mPath == null) return false; + final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.US); + final String fileName = String.format("Twidere_Settings_%s.zip", sdf.format(new Date())); + final File file = new File(mPath, fileName); + file.delete(); + try { + DataImportExportUtils.exportData(mActivity, file, mFlags); + return true; + } catch (final IOException e) { + e.printStackTrace(); + } + return false; + } - @Override - protected void onPreExecute() { - ProgressDialogFragment.show(mActivity, FRAGMENT_TAG).setCancelable(false); - } + @Override + protected void onPostExecute(final Boolean result) { + final FragmentManager fm = mActivity.getSupportFragmentManager(); + final DialogFragment f = (DialogFragment) fm.findFragmentByTag(FRAGMENT_TAG); + if (f != null) { + f.dismiss(); + } + if (result != null && result) { + mActivity.setResult(RESULT_OK); + } else { + mActivity.setResult(RESULT_CANCELED); + } + mActivity.finish(); + } - } + @Override + protected void onPreExecute() { + ProgressDialogFragment.show(mActivity, FRAGMENT_TAG).setCancelable(false); + } + + } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataImportActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataImportActivity.java index 4da341d99..fd4c5b499 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataImportActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/DataImportActivity.java @@ -72,6 +72,12 @@ public class DataImportActivity extends ThemedFragmentActivity implements FileSe } } + @Override + protected void onStart() { + super.onStart(); + setVisible(true); + } + @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/FileSelectorActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/FileSelectorActivity.java index 5608706d3..86ae299b2 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/FileSelectorActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/FileSelectorActivity.java @@ -45,6 +45,12 @@ public class FileSelectorActivity extends BaseSupportDialogActivity implements F } } + @Override + protected void onStart() { + super.onStart(); + setVisible(true); + } + @Override public void onDismissed(final DialogFragment df) { if (!isFinishing()) { diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/ThemedImagePickerActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/ThemedImagePickerActivity.java index d363e4a97..de33c0d20 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/ThemedImagePickerActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/ThemedImagePickerActivity.java @@ -21,6 +21,12 @@ public class ThemedImagePickerActivity extends ImagePickerActivity { return new ThemedIntentBuilder(context); } + @Override + protected void onStart() { + super.onStart(); + setVisible(true); + } + public static final class ThemedIntentBuilder { private final Context context; private final IntentBuilder intentBuilder; diff --git a/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java b/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java index 7141e99b9..71b4a21cb 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java +++ b/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java @@ -230,8 +230,8 @@ public class TwidereApplication extends MultiDexApplication implements Constants @Override public void onLowMemory() { -// final ApplicationModule module = getApplicationModule(); -// module.getMediaLoaderWrapper().clearMemoryCache(); + final ApplicationModule module = getApplicationModule(); + module.onLowMemory(); super.onLowMemory(); } @@ -253,7 +253,7 @@ public class TwidereApplication extends MultiDexApplication implements Constants } public void reloadConnectivitySettings() { - ApplicationModule.get(this).getImageDownloader().reloadConnectivitySettings(); + getApplicationModule().reloadConnectivitySettings(); } private DiskCache createDiskCache(final String dirName) { diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java b/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java index 7508a7d9c..a9021a6a6 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/TwitterAPIFactory.java @@ -113,11 +113,17 @@ public class TwitterAPIFactory implements TwidereConstants { } public static RestHttpClient createHttpClient(final Context context, final Network network, final SharedPreferences prefs) { + final OkHttpClient client = new OkHttpClient(); + updateHttpClientConfiguration(prefs, client); + Internal.instance.setNetwork(client, network); + return new OkHttpRestClient(context, client); + } + + public static void updateHttpClientConfiguration(final SharedPreferences prefs, final OkHttpClient client) { final int connectionTimeout = prefs.getInt(KEY_CONNECTION_TIMEOUT, 10); final boolean ignoreSslError = prefs.getBoolean(KEY_IGNORE_SSL_ERROR, false); final boolean enableProxy = prefs.getBoolean(KEY_ENABLE_PROXY, false); - final OkHttpClient client = new OkHttpClient(); client.setConnectTimeout(connectionTimeout, TimeUnit.SECONDS); final long connectionTimeoutMillis = TimeUnit.MILLISECONDS.convert(connectionTimeout, TimeUnit.SECONDS); final SSLSocketFactory sslSocketFactory; @@ -131,8 +137,6 @@ public class TwitterAPIFactory implements TwidereConstants { if (enableProxy) { client.setProxy(getProxy(prefs)); } - Internal.instance.setNetwork(client, network); - return new OkHttpRestClient(context, client); } @@ -161,7 +165,7 @@ public class TwitterAPIFactory implements TwidereConstants { } else { userAgent = getTwidereUserAgent(context); } - factory.setClient(getDefaultHttpClient(context)); + factory.setClient(ApplicationModule.get(context).getRestHttpClient()); factory.setConverter(new TwitterConverter()); factory.setEndpoint(endpoint); factory.setAuthorization(auth); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java b/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java index efa828095..b7c1fd6b9 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java @@ -25,19 +25,23 @@ import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.QueueProcessingType; import com.nostra13.universalimageloader.utils.L; +import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.internal.Network; import org.mariotaku.restfu.http.RestHttpClient; import org.mariotaku.twidere.BuildConfig; +import org.mariotaku.twidere.Constants; import org.mariotaku.twidere.app.TwidereApplication; import org.mariotaku.twidere.util.ActivityTracker; import org.mariotaku.twidere.util.AsyncTaskManager; import org.mariotaku.twidere.util.AsyncTwitterWrapper; import org.mariotaku.twidere.util.MediaLoaderWrapper; import org.mariotaku.twidere.util.ReadStateManager; +import org.mariotaku.twidere.util.SharedPreferencesWrapper; import org.mariotaku.twidere.util.TwitterAPIFactory; import org.mariotaku.twidere.util.VideoLoader; import org.mariotaku.twidere.util.imageloader.TwidereImageDownloader; +import org.mariotaku.twidere.util.net.OkHttpRestClient; import org.mariotaku.twidere.util.net.TwidereNetwork; import dagger.Module; @@ -49,6 +53,8 @@ import dagger.Provides; @Module public class ApplicationModule { + private final SharedPreferencesWrapper sharedPreferences; + private final ActivityTracker activityTracker; private final AsyncTwitterWrapper asyncTwitterWrapper; private final ReadStateManager readStateManager; @@ -61,13 +67,14 @@ public class ApplicationModule { private final RestHttpClient restHttpClient; public ApplicationModule(TwidereApplication application) { + sharedPreferences = SharedPreferencesWrapper.getInstance(application, Constants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE); activityTracker = new ActivityTracker(); asyncTaskManager = AsyncTaskManager.getInstance(); asyncTwitterWrapper = new AsyncTwitterWrapper(application, asyncTaskManager); readStateManager = new ReadStateManager(application); network = new TwidereNetwork(application); restHttpClient = TwitterAPIFactory.getDefaultHttpClient(application, network); - imageDownloader = new TwidereImageDownloader(application, network, true); + imageDownloader = new TwidereImageDownloader(application, restHttpClient, true); imageLoader = createImageLoader(application, imageDownloader); videoLoader = new VideoLoader(application, imageDownloader, asyncTaskManager); mediaLoaderWrapper = new MediaLoaderWrapper(imageLoader, videoLoader); @@ -140,4 +147,17 @@ public class ApplicationModule { public Network getNetwork() { return network; } + + + public void reloadConnectivitySettings() { + imageDownloader.reloadConnectivitySettings(); + if (restHttpClient instanceof OkHttpRestClient) { + final OkHttpClient okHttpClient = ((OkHttpRestClient) restHttpClient).getClient(); + TwitterAPIFactory.updateHttpClientConfiguration(sharedPreferences, okHttpClient); + } + } + + public void onLowMemory() { + mediaLoaderWrapper.clearMemoryCache(); + } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/imageloader/TwidereImageDownloader.java b/twidere/src/main/java/org/mariotaku/twidere/util/imageloader/TwidereImageDownloader.java index 99ee87c65..2684d123c 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/imageloader/TwidereImageDownloader.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/imageloader/TwidereImageDownloader.java @@ -29,7 +29,6 @@ import android.webkit.URLUtil; import com.nostra13.universalimageloader.core.assist.ContentLengthInputStream; import com.nostra13.universalimageloader.core.download.BaseImageDownloader; -import com.squareup.okhttp.internal.Network; import com.squareup.pollexor.Thumbor; import com.squareup.pollexor.ThumborUrlBuilder; @@ -70,25 +69,24 @@ public class TwidereImageDownloader extends BaseImageDownloader implements Const private final SharedPreferencesWrapper mPreferences; private final boolean mUseThumbor; private final String mUserAgent; - private final Network mNetwork; + private final RestHttpClient mClient; private Thumbor mThumbor; - private RestHttpClient mClient; + private final String mTwitterProfileImageSize; - public TwidereImageDownloader(final Context context, final Network network, final boolean useThumbor) { + public TwidereImageDownloader(final Context context, final RestHttpClient client, final boolean useThumbor) { super(context); mContext = context; - mNetwork = network; mPreferences = SharedPreferencesWrapper.getInstance(context, SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE, SharedPreferenceConstants.class); mTwitterProfileImageSize = context.getString(R.string.profile_image_size); mUseThumbor = useThumbor; mUserAgent = UserAgentUtils.getDefaultUserAgentString(context); + mClient = client; reloadConnectivitySettings(); } public void reloadConnectivitySettings() { - mClient = TwitterAPIFactory.getDefaultHttpClient(mContext, mNetwork); if (mUseThumbor && mPreferences.getBoolean(KEY_THUMBOR_ENABLED)) { final String address = mPreferences.getString(KEY_THUMBOR_ADDRESS, null); final String securityKey = mPreferences.getString(KEY_THUMBOR_SECURITY_KEY, null); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/net/OkHttpRestClient.java b/twidere/src/main/java/org/mariotaku/twidere/util/net/OkHttpRestClient.java index 9d339f03e..ba6f7f71a 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/net/OkHttpRestClient.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/net/OkHttpRestClient.java @@ -70,7 +70,12 @@ public class OkHttpRestClient implements RestHttpClient { DebugModeUtils.initForHttpClient(client); } + public OkHttpClient getClient() { + return client; + } + @NonNull + @Override public RestHttpResponse execute(RestHttpRequest restHttpRequest) throws IOException { final Call call = newCall(restHttpRequest);