1
0
mirror of https://github.com/TwidereProject/Twidere-Android synced 2025-02-17 04:00:48 +01:00

added preset to load fanfou api settings

This commit is contained in:
Mariotaku Lee 2016-03-12 21:16:27 +08:00
parent 6d0d59ec75
commit 5b4990671c
26 changed files with 442 additions and 153 deletions

Binary file not shown.

View File

@ -57,6 +57,7 @@ public interface TwidereConstants extends SharedPreferenceConstants, IntentConst
String FANFOU_CONSUMER_SECRET = "c00f4b83dbfc52e2ed78a21d4edfc3cc";
String DEFAULT_TWITTER_API_URL_FORMAT = "https://[DOMAIN.]twitter.com/";
String DEFAULT_FANFOU_API_URL_FORMAT = "http://api.fanfou.com/";
String SCHEME_HTTP = "http";
String SCHEME_HTTPS = "https";

View File

@ -106,6 +106,9 @@ public class User extends TwitterResponseObject implements Comparable<User> {
@JsonField(name = "media_count")
long mediaCount = -1;
@JsonField(name = "photo_count")
long photoCount = -1;
@JsonField(name = "lang")
String lang;
@ -324,7 +327,8 @@ public class User extends TwitterResponseObject implements Comparable<User> {
public long getMediaCount() {
return mediaCount;
if (mediaCount != -1) return mediaCount;
return photoCount;
}

View File

@ -19,10 +19,14 @@
package org.mariotaku.twidere.activity.support;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
@ -35,6 +39,8 @@ import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.fragment.support.BaseSupportDialogFragment;
import org.mariotaku.twidere.model.CustomAPIConfig;
import org.mariotaku.twidere.model.ParcelableCredentials;
import org.mariotaku.twidere.provider.TwidereDataStore.Accounts;
import org.mariotaku.twidere.util.ParseUtils;
@ -52,6 +58,7 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements OnCh
private RadioGroup mEditAuthType;
private RadioButton mButtonOAuth, mButtonXAuth, mButtonBasic, mButtonTWIPOMode;
private Button mSaveButton;
private Button mLoadDefaultsButton;
private View mAPIFormatHelpButton;
private boolean mEditNoVersionSuffixChanged;
@ -87,6 +94,11 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements OnCh
Toast.makeText(this, R.string.api_url_format_help, Toast.LENGTH_LONG).show();
break;
}
case R.id.load_defaults: {
final LoadDefaultsChooserDialogFragment df = new LoadDefaultsChooserDialogFragment();
df.show(getSupportFragmentManager(), "load_defaults");
break;
}
}
}
@ -97,6 +109,7 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements OnCh
@Override
public void onContentChanged() {
super.onContentChanged();
mLoadDefaultsButton = (Button) findViewById(R.id.load_defaults);
mEditAPIUrlFormat = (EditText) findViewById(R.id.api_url_format);
mEditAuthType = (RadioGroup) findViewById(R.id.auth_type);
mButtonOAuth = (RadioButton) findViewById(R.id.oauth);
@ -187,6 +200,9 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements OnCh
mSaveButton.setOnClickListener(this);
mAPIFormatHelpButton.setOnClickListener(this);
mLoadDefaultsButton.setVisibility(View.VISIBLE);
mLoadDefaultsButton.setOnClickListener(this);
mEditAPIUrlFormat.setText(apiUrlFormat);
mEditSameOAuthSigningUrl.setChecked(sameOAuthSigningUrl);
mEditNoVersionSuffix.setChecked(noVersionSuffix);
@ -218,4 +234,54 @@ public class APIEditorActivity extends BaseSupportDialogActivity implements OnCh
}
}
}
private int getAuthTypeId(final int authType) {
switch (authType) {
case ParcelableCredentials.AUTH_TYPE_XAUTH: {
return R.id.xauth;
}
case ParcelableCredentials.AUTH_TYPE_BASIC: {
return R.id.basic;
}
case ParcelableCredentials.AUTH_TYPE_TWIP_O_MODE: {
return R.id.twip_o;
}
default: {
return R.id.oauth;
}
}
}
private void setAPIConfig(CustomAPIConfig apiConfig) {
mEditAPIUrlFormat.setText(apiConfig.getApiUrlFormat());
mEditAuthType.check(getAuthTypeId(apiConfig.getAuthType()));
mEditSameOAuthSigningUrl.setChecked(apiConfig.isSameOAuthUrl());
mEditNoVersionSuffix.setChecked(apiConfig.isNoVersionSuffix());
mEditConsumerKey.setText(apiConfig.getConsumerKey());
mEditConsumerSecret.setText(apiConfig.getConsumerSecret());
}
public static class LoadDefaultsChooserDialogFragment extends BaseSupportDialogFragment
implements DialogInterface.OnClickListener {
private CustomAPIConfig[] mAPIConfigs;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mAPIConfigs = CustomAPIConfig.listDefault(getContext());
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
String[] entries = new String[mAPIConfigs.length];
for (int i = 0, mAPIConfigsLength = mAPIConfigs.length; i < mAPIConfigsLength; i++) {
entries[i] = mAPIConfigs[i].getName();
}
builder.setItems(entries, this);
return builder.create();
}
@Override
public void onClick(DialogInterface dialog, int which) {
((APIEditorActivity) getActivity()).setAPIConfig(mAPIConfigs[which]);
}
}
}

View File

@ -19,6 +19,7 @@
package org.mariotaku.twidere.activity.support;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.annotation.NonNull;
@ -150,6 +151,18 @@ public abstract class ThemedAppCompatActivity extends AppCompatActivity implemen
ThemeUtils.applyToolbarItemColor(this, toolbar, mCurrentThemeColor);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
int currentNightMode = getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_MASK;
if (currentNightMode == Configuration.UI_MODE_NIGHT_YES)
newConfig.uiMode = (newConfig.uiMode & ~Configuration.UI_MODE_NIGHT_MASK) | Configuration.UI_MODE_NIGHT_YES;
super.onConfigurationChanged(newConfig);
}
@Nullable
public final Toolbar peekActionBarToolbar() {
return mToolbar;

View File

@ -34,6 +34,7 @@ import org.mariotaku.twidere.model.ParcelableAccount;
import org.mariotaku.twidere.model.ParcelableAccountCursorIndices;
import org.mariotaku.twidere.model.ParcelableUser;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.model.util.ParcelableAccountUtils;
import org.mariotaku.twidere.provider.TwidereDataStore.Accounts;
import org.mariotaku.twidere.util.JsonSerializer;
import org.mariotaku.twidere.util.MediaLoaderWrapper;
@ -93,6 +94,8 @@ public class AccountsAdapter extends SimpleDragSortCursorAdapter implements Cons
} else {
mImageLoader.cancelDisplayTask(holder.profileImage);
}
final String accountType = cursor.getString(mIndices.account_type);
holder.accountType.setImageResource(ParcelableAccountUtils.getAccountTypeIcon(accountType));
holder.toggle.setChecked(cursor.getShort(mIndices.is_activated) == 1);
holder.toggle.setOnCheckedChangeListener(mCheckedChangeListener);
holder.toggle.setTag(cursor.getString(mIndices.account_key));

View File

@ -114,6 +114,7 @@ public class TwidereApplication extends Application implements Constants,
if (BuildConfig.DEBUG) {
StrictModeUtils.detectAllVmPolicy();
}
resetTheme(getSharedPreferences());
super.onCreate();
initializeAsyncTask();
initDebugMode();
@ -251,7 +252,7 @@ public class TwidereApplication extends Application implements Constants,
break;
}
case KEY_THEME: {
// resetTheme(preferences);
resetTheme(preferences);
break;
}
}

View File

@ -27,6 +27,7 @@ import android.support.v4.content.Loader;
import org.mariotaku.twidere.loader.support.PublicTimelineLoader;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.Utils;
import java.util.List;
@ -50,7 +51,7 @@ public class PublicTimelineFragment extends ParcelableStatusesFragment {
final boolean fromUser) {
setRefreshing(true);
final List<ParcelableStatus> data = getAdapterData();
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final int tabPosition = args.getInt(EXTRA_TAB_POSITION, -1);

View File

@ -27,6 +27,7 @@ import android.support.v4.content.Loader;
import org.mariotaku.twidere.loader.support.RetweetsOfMeLoader;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.Utils;
import java.util.List;
@ -38,7 +39,7 @@ public class RetweetsOfMeFragment extends ParcelableStatusesFragment {
protected Loader<List<ParcelableStatus>> onCreateStatusesLoader(final Context context,
final Bundle args,
final boolean fromUser) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final int tabPosition = args.getInt(EXTRA_TAB_POSITION, -1);

View File

@ -25,9 +25,11 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.content.Loader;
import org.apache.commons.lang3.ArrayUtils;
import org.mariotaku.twidere.loader.support.TweetSearchLoader;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.Utils;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
@ -52,7 +54,7 @@ public class StatusesSearchFragment extends ParcelableStatusesFragment {
final Bundle args,
final boolean fromUser) {
setRefreshing(true);
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final int page = args.getInt(EXTRA_PAGE, -1);

View File

@ -27,6 +27,7 @@ import android.support.v4.content.Loader;
import org.mariotaku.twidere.loader.support.UserFavoritesLoader;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.Utils;
import java.util.List;
@ -42,7 +43,7 @@ public class UserFavoritesFragment extends ParcelableStatusesFragment {
final Bundle args,
final boolean fromUser) {
setRefreshing(true);
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);

View File

@ -27,6 +27,7 @@ import android.support.v4.content.Loader;
import org.mariotaku.twidere.loader.support.UserListTimelineLoader;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.Utils;
import java.util.List;
@ -51,7 +52,7 @@ public class UserListTimelineFragment extends ParcelableStatusesFragment {
setRefreshing(true);
if (args == null) return null;
final long listId = args.getLong(EXTRA_LIST_ID, -1);
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);

View File

@ -27,6 +27,7 @@ import android.support.v4.content.Loader;
import org.mariotaku.twidere.loader.support.UserTimelineLoader;
import org.mariotaku.twidere.model.ParcelableStatus;
import org.mariotaku.twidere.model.UserKey;
import org.mariotaku.twidere.util.Utils;
import java.util.List;
@ -50,7 +51,7 @@ public class UserTimelineFragment extends ParcelableStatusesFragment {
final boolean fromUser) {
setRefreshing(true);
final List<ParcelableStatus> data = getAdapterData();
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);

View File

@ -0,0 +1,72 @@
package org.mariotaku.twidere.model;
import android.content.Context;
import android.support.annotation.NonNull;
import org.mariotaku.twidere.Constants;
import org.mariotaku.twidere.R;
/**
* Created by mariotaku on 16/3/12.
*/
public class CustomAPIConfig implements Constants {
String name;
String apiUrlFormat;
int authType;
boolean sameOAuthUrl;
boolean noVersionSuffix;
String consumerKey;
String consumerSecret;
public CustomAPIConfig(String name, String apiUrlFormat, int authType, boolean sameOAuthUrl,
boolean noVersionSuffix, String consumerKey, String consumerSecret) {
this.name = name;
this.apiUrlFormat = apiUrlFormat;
this.authType = authType;
this.sameOAuthUrl = sameOAuthUrl;
this.noVersionSuffix = noVersionSuffix;
this.consumerKey = consumerKey;
this.consumerSecret = consumerSecret;
}
public String getName() {
return name;
}
public String getApiUrlFormat() {
return apiUrlFormat;
}
public int getAuthType() {
return authType;
}
public boolean isSameOAuthUrl() {
return sameOAuthUrl;
}
public boolean isNoVersionSuffix() {
return noVersionSuffix;
}
public String getConsumerKey() {
return consumerKey;
}
public String getConsumerSecret() {
return consumerSecret;
}
@NonNull
public static CustomAPIConfig[] listDefault(@NonNull Context context) {
CustomAPIConfig[] list = new CustomAPIConfig[2];
list[0] = new CustomAPIConfig(context.getString(R.string.provider_default),
DEFAULT_TWITTER_API_URL_FORMAT, ParcelableCredentials.AUTH_TYPE_OAUTH, true, false,
TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
list[1] = new CustomAPIConfig(context.getString(R.string.provider_fanfou),
DEFAULT_FANFOU_API_URL_FORMAT, ParcelableCredentials.AUTH_TYPE_OAUTH, true, true,
FANFOU_CONSUMER_KEY, FANFOU_CONSUMER_SECRET);
return list;
}
}

View File

@ -8,6 +8,7 @@ import android.support.annotation.Nullable;
import org.mariotaku.sqliteqb.library.ArgsArray;
import org.mariotaku.sqliteqb.library.Columns;
import org.mariotaku.sqliteqb.library.Expression;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.model.ParcelableAccount;
import org.mariotaku.twidere.model.ParcelableAccountCursorIndices;
import org.mariotaku.twidere.model.UserKey;
@ -100,4 +101,21 @@ public class ParcelableAccountUtils {
if (account.account_type == null) return ParcelableAccount.Type.TWITTER;
return account.account_type;
}
public static int getAccountTypeIcon(@Nullable String accountType) {
if (accountType == null) return R.drawable.ic_account_logo_twitter;
switch (accountType) {
case ParcelableAccount.Type.TWITTER: {
return R.drawable.ic_account_logo_twitter;
}
case ParcelableAccount.Type.FANFOU: {
return R.drawable.ic_account_logo_fanfou;
}
case ParcelableAccount.Type.STATUSNET: {
return R.drawable.ic_account_logo_statusnet;
}
}
return R.drawable.ic_account_logo_twitter;
}
}

View File

@ -822,6 +822,13 @@ public final class Utils implements Constants {
return null;
}
@Nullable
public static UserKey getAccountKey(@NonNull Context context, @Nullable Bundle args) {
final UserKey[] accountKeys = getAccountKeys(context, args);
if (ArrayUtils.isEmpty(accountKeys)) return null;
return accountKeys[0];
}
@Nullable
public static String getReadPositionTagWithAccounts(@Nullable final String tag,
final UserKey... accountKeys) {

View File

@ -25,7 +25,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import org.mariotaku.twidere.R;
import org.mariotaku.twidere.view.ColorLabelRelativeLayout;
import org.mariotaku.twidere.view.iface.IColorLabelView;
public class AccountViewHolder {
@ -33,17 +33,19 @@ public class AccountViewHolder {
public final TextView name, screenName;
public final CompoundButton toggle;
public final View toggleContainer;
private final ColorLabelRelativeLayout content;
public final ImageView accountType;
private final IColorLabelView content;
private final View dragHandle;
public AccountViewHolder(final View view) {
content = (ColorLabelRelativeLayout) view;
content = (IColorLabelView) view;
name = (TextView) view.findViewById(android.R.id.text1);
screenName = (TextView) view.findViewById(android.R.id.text2);
profileImage = (ImageView) view.findViewById(android.R.id.icon);
toggle = (CompoundButton) view.findViewById(android.R.id.toggle);
toggleContainer = view.findViewById(R.id.toggle_container);
dragHandle = view.findViewById(R.id.drag_handle);
accountType = (ImageView) view.findViewById(R.id.account_type);
}
public void setAccountColor(final int color) {

View File

@ -17,132 +17,139 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="?android:dividerVertical"
android:orientation="vertical"
android:showDividers="middle"
tools:context=".activity.EditCustomTabActivity">
android:layout_height="wrap_content">
<ScrollView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
android:layout_height="wrap_content"
android:divider="?android:dividerVertical"
android:orientation="vertical"
android:showDividers="middle"
tools:context=".activity.EditCustomTabActivity"
tools:ignore="UselessParent">
<LinearLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/element_spacing_large">
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<Spinner
android:id="@+id/tab_icon_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/element_spacing_normal"
tools:listitem="@layout/spinner_item_custom_tab_icon" />
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/tab_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/element_spacing_normal"
android:hint="@string/name"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
app:met_baseColor="?android:colorForeground"
app:met_floatingLabelAlwaysShown="true" />
</LinearLayout>
<LinearLayout
android:id="@+id/account_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/account" />
<Spinner
android:id="@+id/account_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/element_spacing_normal"
tools:listitem="@layout/list_item_two_line_small" />
</LinearLayout>
<LinearLayout
android:id="@+id/secondary_field_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/secondary_field_label"
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/user" />
<FrameLayout
android:id="@+id/secondary_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
android:onClick="onClick"
android:padding="@dimen/element_spacing_normal">
<include layout="@layout/list_item_two_line_small" />
</FrameLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/extra_configurations_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/extra_configurations_label"
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/extra_configurations" />
android:orientation="vertical"
android:padding="@dimen/element_spacing_large">
<LinearLayout
android:id="@+id/extra_configurations_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@android:color/darker_gray"
android:dividerPadding="0.4dp"
android:orientation="vertical"
android:padding="@dimen/element_spacing_normal" />
android:gravity="center_vertical"
android:orientation="horizontal">
<Spinner
android:id="@+id/tab_icon_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/element_spacing_normal"
tools:listitem="@layout/spinner_item_custom_tab_icon"/>
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/tab_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/element_spacing_normal"
android:hint="@string/name"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
app:met_baseColor="?android:colorForeground"
app:met_floatingLabelAlwaysShown="true"/>
</LinearLayout>
<LinearLayout
android:id="@+id/account_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/account"/>
<Spinner
android:id="@+id/account_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/element_spacing_normal"
tools:listitem="@layout/list_item_two_line_small"/>
</LinearLayout>
<LinearLayout
android:id="@+id/secondary_field_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/secondary_field_label"
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/user"/>
<FrameLayout
android:id="@+id/secondary_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
android:onClick="onClick"
android:padding="@dimen/element_spacing_normal">
<include layout="@layout/list_item_two_line_small"/>
</FrameLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/extra_configurations_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/extra_configurations_label"
style="?android:listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/extra_configurations"/>
<LinearLayout
android:id="@+id/extra_configurations_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@android:color/darker_gray"
android:dividerPadding="0.4dp"
android:orientation="vertical"
android:padding="@dimen/element_spacing_normal"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</ScrollView>
<Button
android:id="@+id/save"
style="?android:borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="@dimen/button_bar_height"
android:layout_gravity="center_horizontal"
android:layout_weight="0"
android:gravity="center"
android:onClick="onClick"
android:text="@android:string/ok" />
<Button
android:id="@+id/save"
style="?android:borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="@dimen/button_bar_height"
android:layout_gravity="center_horizontal"
android:layout_weight="0"
android:gravity="center"
android:onClick="onClick"
android:text="@android:string/ok"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>

View File

@ -39,6 +39,7 @@
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:clipChildren="false"
android:gravity="center"
android:orientation="vertical">
@ -75,16 +76,17 @@
android:id="@+id/sign_in_sign_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:orientation="horizontal"
android:padding="8dp">
<Button
<android.support.v7.widget.AppCompatButton
android:id="@+id/sign_up"
style="?android:buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:minHeight="48dp"
android:minHeight="@dimen/element_size_normal"
android:text="@string/register"/>
<android.support.v7.widget.AppCompatButton
@ -93,7 +95,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:minHeight="48dp"
android:minHeight="@dimen/element_size_normal"
android:onClick="onClick"
android:text="@string/sign_in"
app:backgroundTint="@color/material_light_green"/>

View File

@ -17,7 +17,9 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
@ -28,6 +30,13 @@
android:orientation="vertical"
android:padding="16dp">
<Button
android:id="@+id/load_defaults"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/load_defaults"
android:visibility="gone"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -41,7 +50,7 @@
android:layout_weight="1"
android:singleLine="true"
android:text="@string/api_url_format"
android:textAppearance="?android:attr/textAppearanceSmall" />
android:textAppearance="?android:attr/textAppearanceSmall"/>
<org.mariotaku.twidere.view.ActionIconView
android:id="@+id/api_url_format_help"
@ -49,7 +58,7 @@
android:layout_height="@dimen/element_size_small"
android:layout_weight="0"
android:background="?selectableItemBackground"
android:src="@drawable/ic_action_info" />
android:src="@drawable/ic_action_info"/>
</LinearLayout>
<EditText
@ -58,14 +67,15 @@
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textUri"
android:singleLine="true" />
android:singleLine="true"
tools:text="https://api.twitter.com/"/>
<TextView
android:id="@+id/label_auth_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/auth_type"
android:textAppearance="?android:attr/textAppearanceSmall" />
android:textAppearance="?android:attr/textAppearanceSmall"/>
<HorizontalScrollView
android:id="@+id/auth_type_scroll"
@ -83,31 +93,32 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/oauth" />
android:text="@string/oauth"
tools:checked="true"/>
<RadioButton
android:id="@+id/basic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/basic" />
android:text="@string/basic"/>
<RadioButton
android:id="@+id/twip_o"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/twip_o" />
android:text="@string/twip_o"/>
<RadioButton
android:id="@+id/xauth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/xauth" />
android:text="@string/xauth"/>
</RadioGroup>
</HorizontalScrollView>
<include layout="@layout/layout_api_editor_advanced_fields" />
<include layout="@layout/layout_api_editor_advanced_fields"/>
</LinearLayout>
</ScrollView>

View File

@ -17,16 +17,19 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
<LinearLayout
android:id="@+id/advanced_api_config"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingEnd="0dp"
android:paddingLeft="@dimen/element_spacing_normal"
android:paddingRight="0dp"
android:paddingStart="@dimen/element_spacing_normal">
android:paddingStart="@dimen/element_spacing_normal"
tools:showIn="@layout/layout_api_editor">
<CheckBox
android:id="@+id/same_oauth_signing_url"
@ -35,7 +38,8 @@
android:paddingBottom="@dimen/element_spacing_normal"
android:paddingTop="@dimen/element_spacing_normal"
android:text="@string/same_oauth_signing_url"
android:textAppearance="?android:attr/textAppearanceSmall" />
android:textAppearance="?android:attr/textAppearanceSmall"
tools:checked="true"/>
<CheckBox
android:id="@+id/no_version_suffix"
@ -44,7 +48,8 @@
android:paddingBottom="@dimen/element_spacing_normal"
android:paddingTop="@dimen/element_spacing_normal"
android:text="@string/no_version_suffix"
android:textAppearance="?android:attr/textAppearanceSmall" />
android:textAppearance="?android:attr/textAppearanceSmall"
tools:checked="false"/>
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/consumer_key"
@ -56,7 +61,8 @@
android:singleLine="true"
app:met_baseColor="?android:textColorPrimary"
app:met_floatingLabel="normal"
app:met_floatingLabelText="@string/consumer_key" />
app:met_floatingLabelText="@string/consumer_key"
tools:text="0123456789ABCD"/>
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/consumer_secret"
@ -68,6 +74,7 @@
android:singleLine="true"
app:met_baseColor="?android:textColorPrimary"
app:met_floatingLabel="normal"
app:met_floatingLabelText="@string/consumer_secret" />
app:met_floatingLabelText="@string/consumer_secret"
tools:text="0123456789ABCD"/>
</LinearLayout>

View File

@ -14,17 +14,23 @@
limitations under the License.
-->
<org.mariotaku.twidere.view.ColorLabelRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<org.mariotaku.twidere.view.ColorLabelRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:descendantFocusability="blocksDescendants"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:padding="@dimen/element_spacing_normal"
android:paddingBottom="@dimen/element_spacing_normal"
android:paddingEnd="@dimen/element_spacing_normal"
android:paddingLeft="0dp"
android:paddingRight="@dimen/element_spacing_normal"
android:paddingStart="0dp"
android:paddingTop="@dimen/element_spacing_normal"
app:ignorePadding="true">
<View
android:id="@+id/drag_handle"
android:layout_width="24dp"
@ -33,18 +39,32 @@
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_weight="0"
android:background="@drawable/list_drag_handle" />
android:background="@drawable/list_drag_handle"
tools:layout_height="?android:attr/listPreferredItemHeight"/>
<org.mariotaku.twidere.view.ShapedImageView
android:id="@android:id/icon"
style="?profileImageStyle"
android:layout_width="@dimen/icon_size_list_item"
android:layout_height="@dimen/icon_size_list_item"
android:layout_width="@dimen/element_size_normal"
android:layout_height="@dimen/element_size_normal"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/drag_handle"
android:layout_toRightOf="@+id/drag_handle"
android:contentDescription="@string/your_profile_image"
android:scaleType="fitCenter" />
android:scaleType="fitCenter"
tools:src="@mipmap/ic_launcher"/>
<ImageView
android:id="@+id/account_type"
android:layout_width="@dimen/element_size_small"
android:layout_height="@dimen/element_size_small"
android:layout_alignBottom="@android:id/icon"
android:layout_alignEnd="@android:id/icon"
android:layout_alignRight="@android:id/icon"
android:layout_marginBottom="@dimen/element_spacing_minus_normal"
android:scaleType="centerInside"
tools:ignore="ContentDescription"
tools:src="@drawable/ic_account_logo_twitter"/>
<LinearLayout
android:layout_width="match_parent"
@ -64,7 +84,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="?android:textColorPrimary" />
android:textColor="?android:textColorPrimary"/>
<TextView
android:id="@android:id/text2"
@ -72,7 +92,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:textColorSecondary" />
android:textColor="?android:textColorSecondary"/>
</LinearLayout>
<com.lnikkila.extendedtouchview.ExtendedTouchView
@ -82,6 +102,7 @@
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:clipChildren="false"
app:touchHeight="48dp"
app:touchWidth="48dp">
@ -89,7 +110,7 @@
android:id="@android:id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
android:layout_gravity="center"/>
</com.lnikkila.extendedtouchview.ExtendedTouchView>
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>

View File

@ -760,4 +760,7 @@
<string name="external_user_host_format">External user at <xliff:g id="host">%s</xliff:g></string>
<string name="external_group_host_format">External group at <xliff:g id="host">%s</xliff:g></string>
<string name="error_too_many_photos_fanfou">Too many photos</string>
<string name="load_defaults">Load defaults</string>
<string name="provider_default">Twidere</string>
<string name="provider_fanfou">Fanfou</string>
</resources>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 3.6.1 (26313) - http://www.bohemiancoding.com/sketch -->
<title>ic_account_logo_fanfou-mdpi</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Miscellaneous" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="ic_account_logo_fanfou-mdpi">
<circle id="Oval-3" fill="#FFFFFF" cx="24" cy="24" r="24"></circle>
<path d="M12.7935223,9 L15.3846154,9.64777328 C15.211875,10.9433263 14.9095838,12.1956755 14.4777328,13.4048583 L20.9554656,13.4048583 L20.9554656,15.7368421 C20.9554656,15.9095825 20.7179511,16.6437182 20.242915,17.9392713 C19.7678789,19.2348243 19.2280732,20.443989 18.6234818,21.5668016 L16.4210526,20.2712551 C17.1983845,18.8893318 17.8029668,17.4210604 18.2348178,15.8663968 L13.7004049,15.8663968 C12.7503326,18.8893538 11.4979835,21.4804211 9.94331984,23.6396761 L8,21.5668016 C10.2456253,17.9392531 11.84345,13.7503611 12.7935223,9 L12.7935223,9 Z M13.0526316,19.8825911 L15.51417,19.8825911 L15.51417,34.9109312 C16.8097231,34.0472291 17.9757033,33.1403556 19.0121457,32.1902834 L19.5303644,35.0404858 C17.9757007,36.3360389 16.2051381,37.5452036 14.2186235,38.6680162 L13.0526316,37.242915 L13.0526316,19.8825911 Z M25.3603239,20.7894737 C25.1875835,27.7854601 23.9784188,33.6585457 21.7327935,38.4089069 L19.4008097,36.854251 C21.646435,32.2766303 22.7692308,26.1876223 22.7692308,18.5870445 L22.7692308,11.5910931 C27.0877409,11.0728719 31.0607106,10.2955517 34.6882591,9.25910931 L36.7611336,11.3319838 C33.3063255,12.3684262 29.5060936,13.1457464 25.3603239,13.6639676 L25.3603239,18.4574899 L36.6315789,18.4574899 C36.2860981,23.3805914 35.033749,27.6990368 32.8744939,31.4129555 C34.2564172,33.2267297 36.0269798,34.8677389 38.1862348,36.3360324 L36.8906883,38.6680162 C34.8178034,37.3724632 33.0040564,35.6882695 31.4493927,33.6153846 L29.7651822,35.4291498 C29.1605908,36.0337412 28.4696395,36.6383236 27.6923077,37.242915 C26.9149759,37.8475064 26.0944713,38.3657198 25.2307692,38.7975709 L23.6761134,36.5951417 C26.2672194,35.2995887 28.3400732,33.5290261 29.8947368,31.2834008 C27.9945924,27.8285927 26.6990588,24.330652 26.0080972,20.7894737 L25.3603239,20.7894737 Z M28.340081,20.7894737 C28.9446724,23.5533202 29.9379148,26.2307563 31.3198381,28.8218623 C32.6153911,26.3171265 33.4358957,23.6396904 33.7813765,20.7894737 L28.340081,20.7894737 Z" id="饭_border" stroke="#FFFFFF" stroke-width="3.5" stroke-linejoin="round" fill="#FFFFFF"></path>
<path d="M12.7935223,9 L15.3846154,9.64777328 C15.211875,10.9433263 14.9095838,12.1956755 14.4777328,13.4048583 L20.9554656,13.4048583 L20.9554656,15.7368421 C20.9554656,15.9095825 20.7179511,16.6437182 20.242915,17.9392713 C19.7678789,19.2348243 19.2280732,20.443989 18.6234818,21.5668016 L16.4210526,20.2712551 C17.1983845,18.8893318 17.8029668,17.4210604 18.2348178,15.8663968 L13.7004049,15.8663968 C12.7503326,18.8893538 11.4979835,21.4804211 9.94331984,23.6396761 L8,21.5668016 C10.2456253,17.9392531 11.84345,13.7503611 12.7935223,9 L12.7935223,9 Z M13.0526316,19.8825911 L15.51417,19.8825911 L15.51417,34.9109312 C16.8097231,34.0472291 17.9757033,33.1403556 19.0121457,32.1902834 L19.5303644,35.0404858 C17.9757007,36.3360389 16.2051381,37.5452036 14.2186235,38.6680162 L13.0526316,37.242915 L13.0526316,19.8825911 Z M25.3603239,20.7894737 C25.1875835,27.7854601 23.9784188,33.6585457 21.7327935,38.4089069 L19.4008097,36.854251 C21.646435,32.2766303 22.7692308,26.1876223 22.7692308,18.5870445 L22.7692308,11.5910931 C27.0877409,11.0728719 31.0607106,10.2955517 34.6882591,9.25910931 L36.7611336,11.3319838 C33.3063255,12.3684262 29.5060936,13.1457464 25.3603239,13.6639676 L25.3603239,18.4574899 L36.6315789,18.4574899 C36.2860981,23.3805914 35.033749,27.6990368 32.8744939,31.4129555 C34.2564172,33.2267297 36.0269798,34.8677389 38.1862348,36.3360324 L36.8906883,38.6680162 C34.8178034,37.3724632 33.0040564,35.6882695 31.4493927,33.6153846 L29.7651822,35.4291498 C29.1605908,36.0337412 28.4696395,36.6383236 27.6923077,37.242915 C26.9149759,37.8475064 26.0944713,38.3657198 25.2307692,38.7975709 L23.6761134,36.5951417 C26.2672194,35.2995887 28.3400732,33.5290261 29.8947368,31.2834008 C27.9945924,27.8285927 26.6990588,24.330652 26.0080972,20.7894737 L25.3603239,20.7894737 Z M28.340081,20.7894737 C28.9446724,23.5533202 29.9379148,26.2307563 31.3198381,28.8218623 C32.6153911,26.3171265 33.4358957,23.6396904 33.7813765,20.7894737 L28.340081,20.7894737 Z" id="饭" fill="#00CBFF"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 3.6.1 (26313) - http://www.bohemiancoding.com/sketch -->
<title>ic_account_logo_statusnet-mdpi</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Miscellaneous" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="ic_account_logo_statusnet-mdpi">
<circle id="Oval-3" fill="#FFFFFF" cx="24" cy="24" r="24"></circle>
<g id="logo" transform="translate(6.000000, 7.459459)">
<path d="M0,14.0156288 C0,11.3711521 1.01208369,9.09124311 3.03625108,7.17590193 C4.29863505,5.97881369 5.75146486,5.16261716 7.39474054,4.72731234 C9.03801621,4.29200753 10.7030571,4.30833146 12.3898633,4.77628414 C14.0766694,5.24423681 15.5730297,6.16381823 16.8789442,7.5350284 C17.8366148,8.53622947 18.5167786,9.70066985 18.9194355,11.0283495 C19.3220925,12.3560292 19.4853318,13.6129719 19.4091534,14.7991775 C19.3329751,15.9853831 19.0772335,17.1008517 18.6419287,18.1455833 C18.2283891,19.0379581 18.1957413,20.0500418 18.5439851,21.1818343 C18.892229,22.3136269 19.3275338,23.2767388 19.8498995,24.07117 C20.3722653,24.8656013 20.9218377,25.6110608 21.4986165,26.3075485 C22.0753954,27.0040362 22.3637849,27.3631627 22.3637849,27.3849279 L22.0046584,27.0910972 C21.787006,26.8734448 21.5530296,26.6503511 21.3027294,26.421816 C21.0524291,26.193281 20.7150679,25.9157742 20.2906457,25.5892956 C19.8662235,25.262817 19.4526839,24.9689862 19.050027,24.7078033 C18.64737,24.4466204 18.1848586,24.1745549 17.6624929,23.8916068 C17.1401271,23.6086587 16.6504092,23.4073302 16.1933391,23.2876214 C15.7362691,23.1679126 15.2519924,23.0862929 14.7405093,23.0427624 C14.2290261,22.9992319 13.7665148,23.0754103 13.3529752,23.2712974 C12.3300089,23.684837 11.2036577,23.9024894 9.97392157,23.9242547 C8.74418546,23.9460199 7.47091888,23.7066023 6.15412182,23.2060017 C4.83732475,22.7054012 3.72185617,21.9545004 2.80771605,20.9532993 C0.935905352,18.9726624 0,16.6601056 0,14.0156288 L0,14.0156288 Z M4.30951767,13.3789955 C4.1136305,14.8807971 4.47819828,16.2356834 5.40322101,17.4436542 C6.32824374,18.6516251 7.54165591,19.3535541 9.04345753,19.5494413 C10.5452591,19.7453285 11.8947041,19.3807607 13.0917923,18.4557379 C14.2888805,17.5307152 14.9853682,16.317303 15.1812554,14.8155014 C15.3771426,13.3136998 15.0180161,11.9642549 14.103876,10.7671666 C13.1897359,9.57007841 11.981765,8.8735907 10.4799634,8.67770354 C8.9781618,8.48181637 7.62327557,8.84094284 6.41530471,9.75508295 C5.20733385,10.6692231 4.50540483,11.8771939 4.30951767,13.3789955 L4.30951767,13.3789955 Z" id="Combined-Shape" fill="#819E14"></path>
<path d="M19.9151953,3.78052437 C20.3722653,2.49637517 21.1775792,1.54414589 22.331137,0.923836526 C23.4846948,0.303527165 24.7144309,0.211024892 26.0203453,0.646329706 C27.2827293,1.03810404 28.2240759,1.82165271 28.8443853,2.99697571 C29.4646946,4.17229871 29.5571969,5.43468267 29.1218921,6.78412759 C28.5995263,8.35122493 27.3589076,9.48301744 25.4000359,10.1795051 C24.7253135,10.4189228 24.121328,10.7834906 23.5880796,11.2732085 C23.0548312,11.7629264 22.6793808,12.176466 22.4617284,12.5138272 C22.244076,12.8511884 21.9937758,13.2919346 21.7108276,13.8360656 C22.1896629,11.790133 21.92848,10.0597963 20.927279,8.64505568 C19.7301907,6.90383642 19.3928295,5.28232598 19.9151953,3.78052437 Z M22.3964327,4.53142518 C22.1570151,5.11908668 22.1624564,5.71218949 22.4127566,6.31073361 C22.6630569,6.90927773 23.0820378,7.32825861 23.6696993,7.56767626 C24.2573608,7.80709391 24.8450223,7.80709391 25.4326838,7.56767626 C26.0203453,7.32825861 26.4338849,6.91471904 26.6733025,6.32705754 C26.9127202,5.7176308 26.9127202,5.11908668 26.6733025,4.53142518 C26.4338849,3.94376368 26.0203453,3.5302241 25.4326838,3.29080646 C24.8450223,3.05138881 24.2519195,3.05138881 23.6533754,3.29080646 C23.0548312,3.5302241 22.6358504,3.94376368 22.3964327,4.53142518 Z" id="Combined-Shape" fill="#2895C5"></path>
<path d="M21.155814,19.9412156 C21.1993445,17.9388135 21.8849496,16.2520073 23.2126292,14.8807971 C24.5403089,13.509587 26.1944672,12.8239819 28.1751041,12.8239819 C30.1122106,12.8239819 31.7663689,13.493263 33.137579,14.8318254 C34.5087892,16.1703877 35.1943943,17.8735177 35.1943943,19.9412156 C35.1943943,22.3353921 33.997306,24.4575031 31.6031295,26.3075485 C30.7760504,26.9387405 30.1013279,27.7114066 29.5789622,28.6255467 C29.0565964,29.5396868 28.7246765,30.279705 28.5832024,30.8456012 C28.4417283,31.4114975 28.3056956,32.140633 28.1751041,33.0330079 C28.0880432,32.1623983 27.979217,31.4332627 27.8486255,30.8456012 C27.7180341,30.2579397 27.3915555,29.5015976 26.8691897,28.5765749 C26.3468239,27.6515521 25.6394536,26.8516796 24.7470787,26.1769571 C22.331137,24.3704421 21.1340488,22.2918616 21.155814,19.9412156 Z M24.5675155,21.3287497 C24.9701724,22.3190682 25.6829841,23.0318798 26.7059504,23.4671846 C27.7071515,23.8807242 28.7083525,23.8752829 29.7095536,23.4508607 C30.7107547,23.0264385 31.418125,22.3136269 31.8316646,21.3124258 C32.2452041,20.3112247 32.2452041,19.3154649 31.8316646,18.3251465 C31.418125,17.334828 30.7107547,16.6220164 29.7095536,16.1867116 C28.7083525,15.773172 27.7071515,15.773172 26.7059504,16.1867116 C25.7047493,16.6002512 24.997379,17.3076215 24.5838394,18.3088226 C24.1702998,19.3317889 24.1648585,20.3384313 24.5675155,21.3287497 Z" id="Combined-Shape" fill="#901616"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 3.6.1 (26313) - http://www.bohemiancoding.com/sketch -->
<title>ic_account_logo_twitter-mdpi</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Miscellaneous" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="ic_account_logo_twitter-mdpi">
<circle id="Oval-3" fill="#FFFFFF" cx="24" cy="24" r="24"></circle>
<path d="M42,14.45091 C40.7490179,15.0056999 39.4046381,15.3806587 37.9935989,15.5492969 C39.4338637,14.6859588 40.5398369,13.3189447 41.0606752,11.6901433 C39.7129376,12.4894337 38.2200666,13.069967 36.6311862,13.382868 C35.3586891,12.027171 33.5458283,11.1800003 31.5395808,11.1800003 C27.6871429,11.1800003 24.5638538,14.303165 24.5638538,18.1553542 C24.5638538,18.7020604 24.625663,19.2344646 24.7445554,19.7449807 C18.9471817,19.4540923 13.8073229,16.6770338 10.3669044,12.4568502 C9.7664728,13.4870854 9.42248071,14.685337 9.42248071,15.9636793 C9.42248071,18.3836873 10.654062,20.5187764 12.5257471,21.7696342 C11.3822159,21.7334441 10.306712,21.4196726 9.3661436,20.8972175 C9.36564615,20.9263188 9.36564615,20.9555444 9.36564615,20.9848944 C9.36564615,24.364623 11.7701086,27.1839653 14.9611763,27.824691 C14.3757928,27.9841263 13.7595669,28.0693159 13.1233183,28.0693159 C12.6738652,28.0693159 12.2368485,28.025664 11.8110245,27.9442053 C12.6986137,30.7155429 15.2746991,32.732237 18.3271005,32.7885741 C15.9398003,34.6593887 12.9320458,35.7745648 9.66399649,35.7745648 C9.10099857,35.7745648 8.54571125,35.7416083 8,35.6771875 C11.0869747,37.6563235 14.7536121,38.8110475 18.6928564,38.8110475 C31.5232891,38.8110475 38.5394345,28.1819901 38.5394345,18.9642206 C38.5394345,18.6617663 38.5327188,18.3609286 38.5192875,18.0618321 C39.8820732,17.078358 41.0647793,15.8497615 42,14.45091" id="Fill-1" fill="#55ACEE"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB