diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/api/UsersResources.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/api/UsersResources.java index ff6089dcb..2ee83ff7f 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/api/UsersResources.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/api/UsersResources.java @@ -34,6 +34,7 @@ import org.mariotaku.twidere.api.twitter.model.IDs; import org.mariotaku.twidere.api.twitter.model.PageableResponseList; import org.mariotaku.twidere.api.twitter.model.Paging; import org.mariotaku.twidere.api.twitter.model.ProfileUpdate; +import org.mariotaku.twidere.api.twitter.model.ResponseCode; import org.mariotaku.twidere.api.twitter.model.ResponseList; import org.mariotaku.twidere.api.twitter.model.SettingsUpdate; import org.mariotaku.twidere.api.twitter.model.User; @@ -103,7 +104,7 @@ public interface UsersResources { @POST("/account/remove_profile_banner.json") @Body(BodyType.FORM) - void removeProfileBannerImage() throws TwitterException; + ResponseCode removeProfileBannerImage() throws TwitterException; @GET("/users/search.json") ResponseList searchUsers(@Query("q") String query, @Query Paging paging) throws TwitterException; @@ -132,14 +133,14 @@ public interface UsersResources { @POST("/account/update_profile_banner.json") @Body(BodyType.MULTIPART) - void updateProfileBannerImage(@Part("image") FileTypedData data, @Part("width") int width, + ResponseCode updateProfileBannerImage(@Part("image") FileTypedData data, @Part("width") int width, @Part("height") int height, @Part("offset_left") int offsetLeft, @Part("offset_top") int offsetTop) throws TwitterException; @POST("/account/update_profile_banner.json") @Body(BodyType.MULTIPART) - void updateProfileBannerImage(@Part("image") FileTypedData data) throws TwitterException; + ResponseCode updateProfileBannerImage(@Part("image") FileTypedData data) throws TwitterException; @POST("/account/update_profile_image.json") @Body(BodyType.MULTIPART) diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/ResponseCode.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/ResponseCode.java new file mode 100644 index 000000000..db6b31b5d --- /dev/null +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/model/ResponseCode.java @@ -0,0 +1,43 @@ +/* + * Twidere - Twitter client for Android + * + * Copyright (C) 2012-2015 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.api.twitter.model; + +import org.mariotaku.restfu.http.RestHttpResponse; + +/** + * Created by mariotaku on 15/6/15. + */ +public class ResponseCode { + + private final int responseCode; + + public ResponseCode(RestHttpResponse response) { + responseCode = response.getStatus(); + } + + public int getResponseCode() { + return responseCode; + } + + public boolean isSuccessful() { + return responseCode >= 200 && responseCode < 300; + } + +} diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/util/TwitterConverter.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/util/TwitterConverter.java index 2bf6d85ee..490d4bf49 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/util/TwitterConverter.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/api/twitter/util/TwitterConverter.java @@ -48,6 +48,7 @@ import org.mariotaku.twidere.api.twitter.model.PageableResponseList; import org.mariotaku.twidere.api.twitter.model.Place; import org.mariotaku.twidere.api.twitter.model.QueryResult; import org.mariotaku.twidere.api.twitter.model.Relationship; +import org.mariotaku.twidere.api.twitter.model.ResponseCode; import org.mariotaku.twidere.api.twitter.model.ResponseList; import org.mariotaku.twidere.api.twitter.model.SavedSearch; import org.mariotaku.twidere.api.twitter.model.Status; @@ -194,6 +195,8 @@ public class TwitterConverter implements Converter { } catch (ParseException e) { throw new IOException(e); } + } else if (ResponseCode.class.isAssignableFrom(cls)) { + return new ResponseCode(response); } final Object object = parseOrThrow(response, stream, cls); checkResponse(cls, object, response); @@ -226,7 +229,11 @@ public class TwitterConverter implements Converter { private static T parseOrThrow(RestHttpResponse resp, InputStream stream, Class cls) throws IOException, TwitterException { try { - return LoganSquare.parse(stream, cls); + final T parse = LoganSquare.parse(stream, cls); + if (TwitterException.class.isAssignableFrom(cls) && parse == null) { + throw new TwitterException(); + } + return parse; } catch (JsonParseException e) { throw new TwitterException("Malformed JSON Data", resp); } diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/constant/IntentConstants.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/constant/IntentConstants.java index d7ab461c2..243339ee9 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/constant/IntentConstants.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/constant/IntentConstants.java @@ -210,6 +210,7 @@ public interface IntentConstants { String EXTRA_MY_FOLLOWING_ONLY = "my_following_only"; String EXTRA_CHANGED = "changed"; String EXTRA_NOTIFY_CHANGE = "notify_change"; + String EXTRA_RESTART_ACTIVITY = "restart_activity"; String EXTRA_FROM_USER = "from_user"; String EXTRA_SHOW_MEDIA_PREVIEW = "show_media_preview"; String EXTRA_SHOW_EXTRA_TYPE = "show_extra_type"; diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/SettingsDetailsFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/SettingsDetailsFragment.java index 2c7e9dec8..058689117 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/fragment/SettingsDetailsFragment.java +++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/SettingsDetailsFragment.java @@ -19,6 +19,7 @@ package org.mariotaku.twidere.fragment; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -95,8 +96,14 @@ public class SettingsDetailsFragment extends BasePreferenceFragment implements S final Preference preference = findPreference(key); if (preference == null) return; final Bundle extras = preference.getExtras(); - if (extras != null && extras.containsKey(EXTRA_NOTIFY_CHANGE)) { - SettingsActivity.setShouldNotifyChange(getActivity()); + if (extras != null) { + final Activity activity = getActivity(); + if (extras.containsKey(EXTRA_NOTIFY_CHANGE)) { + SettingsActivity.setShouldNotifyChange(activity); + } + if (extras.containsKey(EXTRA_RESTART_ACTIVITY)) { + Utils.restartActivity(activity); + } } } } diff --git a/twidere/src/main/java/org/mariotaku/twidere/service/BackgroundOperationService.java b/twidere/src/main/java/org/mariotaku/twidere/service/BackgroundOperationService.java index ba41c54c6..6b4d19259 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/service/BackgroundOperationService.java +++ b/twidere/src/main/java/org/mariotaku/twidere/service/BackgroundOperationService.java @@ -567,7 +567,7 @@ public class BackgroundOperationService extends IntentService implements Constan status.possiblySensitive(statusUpdate.is_possibly_sensitive); if (twitter == null) { - results.add(new SingleResponse(null, new NullPointerException())); + results.add(SingleResponse.getInstance(new NullPointerException())); continue; } try { @@ -588,7 +588,7 @@ public class BackgroundOperationService extends IntentService implements Constan } } final ParcelableStatus result = new ParcelableStatus(resultStatus, account.account_id, false); - results.add(new SingleResponse<>(result, null)); + results.add(SingleResponse.getInstance(result)); } catch (final TwitterException e) { final SingleResponse response = SingleResponse.getInstance(e); results.add(response); diff --git a/twidere/src/main/java/org/mariotaku/twidere/view/holder/StatusViewHolder.java b/twidere/src/main/java/org/mariotaku/twidere/view/holder/StatusViewHolder.java index c6762e52a..4929d3220 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/view/holder/StatusViewHolder.java +++ b/twidere/src/main/java/org/mariotaku/twidere/view/holder/StatusViewHolder.java @@ -113,6 +113,7 @@ public class StatusViewHolder extends ViewHolder implements Constants, OnClickLi profileImageView.setImageResource(R.mipmap.ic_launcher); nameView.setName(TWIDERE_PREVIEW_NAME); nameView.setScreenName("@" + TWIDERE_PREVIEW_SCREEN_NAME); + nameView.updateText(); if (adapter.getLinkHighlightingStyle() == VALUE_LINK_HIGHLIGHT_OPTION_CODE_NONE) { textView.setText(Html.fromHtml(TWIDERE_PREVIEW_TEXT_HTML)); adapter.getTwidereLinkify().applyAllLinks(textView, -1, -1, false, adapter.getLinkHighlightingStyle()); diff --git a/twidere/src/main/res/xml/preferences_content.xml b/twidere/src/main/res/xml/preferences_content.xml index a5c09766a..81c5b8a68 100644 --- a/twidere/src/main/res/xml/preferences_content.xml +++ b/twidere/src/main/res/xml/preferences_content.xml @@ -82,10 +82,6 @@ android:summaryOff="@string/read_from_bottom_summary_off" android:summaryOn="@string/read_from_bottom_summary_on" android:title="@string/read_from_bottom"/> - + \ No newline at end of file diff --git a/twidere/src/main/res/xml/preferences_theme.xml b/twidere/src/main/res/xml/preferences_theme.xml index f2e3701a9..c18297679 100644 --- a/twidere/src/main/res/xml/preferences_theme.xml +++ b/twidere/src/main/res/xml/preferences_theme.xml @@ -4,14 +4,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:title="@string/theme"> - - - - + + + + android:title="@string/font_family"> +