mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
removed follow menuItem and used Button instead, now filling star, fork & watch icons upon interacting with them to close #96 and improved 'again' contribution guide to close #114
This commit is contained in:
parent
d21a8cc6a4
commit
39698a4723
@ -4,4 +4,4 @@ ANDROID_KEY_PASSWORD=PASSWORD
|
||||
ANDROID_KEY_ALIAS=ALIAS
|
||||
GITHUB_CLIENT_ID=GITHUB_CLIENT_ID
|
||||
GITHUB_SECRET=GITHUB_SECRET
|
||||
REDIRECT_URL=REDIRECT_URL
|
||||
REDIRECT_URL=https://127.0.0.1
|
||||
@ -27,7 +27,7 @@ import java.util.List;
|
||||
|
||||
public class AnimHelper {
|
||||
|
||||
interface AnimationCallback {
|
||||
public interface AnimationCallback {
|
||||
void onAnimationEnd();
|
||||
|
||||
void onAnimationStart();
|
||||
@ -35,12 +35,21 @@ public class AnimHelper {
|
||||
|
||||
private static final Interpolator interpolator = new LinearInterpolator();
|
||||
|
||||
@UiThread public static void animateVisibility(@Nullable final View view, final boolean show) {
|
||||
animateVisibility(view, show, null);
|
||||
@UiThread public static void animateVisibility(@Nullable final View view, final boolean show, int visibility) {
|
||||
animateVisibility(view, show, visibility, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings("WeakerAccess") @UiThread
|
||||
public static void animateVisibility(@Nullable final View view, final boolean show, @Nullable final AnimationCallback callback) {
|
||||
@UiThread public static void animateVisibility(@Nullable final View view, final boolean show) {
|
||||
animateVisibility(view, show, View.GONE);
|
||||
}
|
||||
|
||||
@UiThread public static void animateVisibility(@Nullable final View view, final boolean show,
|
||||
@Nullable final AnimationCallback callback) {
|
||||
animateVisibility(view, show, View.GONE, callback);
|
||||
}
|
||||
|
||||
@UiThread public static void animateVisibility(@Nullable final View view, final boolean show, int visibility,
|
||||
@Nullable final AnimationCallback callback) {
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
@ -48,16 +57,17 @@ public class AnimHelper {
|
||||
view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
|
||||
@Override public boolean onPreDraw() {
|
||||
view.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||
animateSafeVisibility(show, view, callback);
|
||||
animateSafeVisibility(show, view, visibility, callback);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
animateSafeVisibility(show, view, callback);
|
||||
animateSafeVisibility(show, view, visibility, callback);
|
||||
}
|
||||
}
|
||||
|
||||
@UiThread private static void animateSafeVisibility(final boolean show, @NonNull final View view, @Nullable final AnimationCallback callback) {
|
||||
@UiThread private static void animateSafeVisibility(final boolean show, @NonNull final View view, int visibility,
|
||||
@Nullable final AnimationCallback callback) {
|
||||
view.clearAnimation();
|
||||
if (view.getAnimation() != null) view.getAnimation().cancel();
|
||||
ViewPropertyAnimator animator = view.animate().setDuration(200).alpha(show ? 1F : 0F).setInterpolator(new AccelerateInterpolator())
|
||||
@ -75,7 +85,7 @@ public class AnimHelper {
|
||||
@Override public void onAnimationEnd(@NonNull Animator animation) {
|
||||
super.onAnimationEnd(animation);
|
||||
if (!show) {
|
||||
view.setVisibility(View.GONE);
|
||||
view.setVisibility(visibility);
|
||||
view.setScaleX(0);
|
||||
view.setScaleY(0);
|
||||
}
|
||||
|
||||
@ -15,13 +15,26 @@ interface ProfileOverviewMvp {
|
||||
|
||||
interface View extends BaseMvp.FAView {
|
||||
void onInitViews(@Nullable UserModel userModel);
|
||||
void onInvalidateMenuItem();
|
||||
}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter {
|
||||
|
||||
|
||||
void onFragmentCreated(@Nullable Bundle bundle);
|
||||
|
||||
void onWorkOffline(@NonNull String login);
|
||||
|
||||
void onCheckFollowStatus(@NonNull String login);
|
||||
|
||||
boolean isSuccessResponse();
|
||||
|
||||
boolean isFollowing();
|
||||
|
||||
void onFollowButtonClicked(@NonNull String login);
|
||||
|
||||
void onSendUserToView(@Nullable UserModel userModel);
|
||||
|
||||
@NonNull String getLogin();
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,27 +3,60 @@ package com.fastaccess.ui.modules.profile.overview;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.fastaccess.data.dao.LoginModel;
|
||||
import com.fastaccess.data.dao.UserModel;
|
||||
import com.fastaccess.helper.BundleConstant;
|
||||
import com.fastaccess.helper.InputHelper;
|
||||
import com.fastaccess.helper.RxHelper;
|
||||
import com.fastaccess.provider.rest.RestProvider;
|
||||
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
|
||||
|
||||
import rx.Observable;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 03 Dec 2016, 9:16 AM
|
||||
*/
|
||||
|
||||
class ProfileOverviewPresenter extends BasePresenter<ProfileOverviewMvp.View> implements ProfileOverviewMvp.Presenter {
|
||||
|
||||
private boolean isSuccessResponse;
|
||||
private boolean isFollowing;
|
||||
private String login;
|
||||
|
||||
|
||||
@Override public void onCheckFollowStatus(@NonNull String login) {
|
||||
if (!TextUtils.equals(login, LoginModel.getUser().getLogin()))
|
||||
makeRestCall(RestProvider.getUserService().getFollowStatus(login),
|
||||
booleanResponse -> {
|
||||
isSuccessResponse = true;
|
||||
isFollowing = booleanResponse.code() == 204;
|
||||
sendToView(ProfileOverviewMvp.View::onInvalidateMenuItem);
|
||||
});
|
||||
}
|
||||
|
||||
@Override public boolean isSuccessResponse() {
|
||||
return isSuccessResponse;
|
||||
}
|
||||
|
||||
@Override public boolean isFollowing() {
|
||||
return isFollowing;
|
||||
}
|
||||
|
||||
@Override public void onFollowButtonClicked(@NonNull String login) {
|
||||
manageSubscription(RxHelper.getObserver(!isFollowing ? RestProvider.getUserService().followUser(login)
|
||||
: RestProvider.getUserService().unfollowUser(login))
|
||||
.subscribe(booleanResponse -> {
|
||||
if (booleanResponse.code() == 204) {
|
||||
isFollowing = !isFollowing;
|
||||
sendToView(ProfileOverviewMvp.View::onInvalidateMenuItem);
|
||||
}
|
||||
}, this::onError));
|
||||
}
|
||||
|
||||
@Override public void onError(@NonNull Throwable throwable) {
|
||||
if (!InputHelper.isEmpty(login)) {
|
||||
onWorkOffline(login);
|
||||
}
|
||||
sendToView(ProfileOverviewMvp.View::onInvalidateMenuItem);
|
||||
super.onError(throwable);
|
||||
}
|
||||
|
||||
@ -36,6 +69,7 @@ class ProfileOverviewPresenter extends BasePresenter<ProfileOverviewMvp.View> im
|
||||
makeRestCall(RestProvider.getUserService().getUser(login),
|
||||
userModel -> {
|
||||
onSendUserToView(userModel);
|
||||
onCheckFollowStatus(login);
|
||||
if (userModel != null) {
|
||||
userModel.save();
|
||||
}
|
||||
@ -52,4 +86,8 @@ class ProfileOverviewPresenter extends BasePresenter<ProfileOverviewMvp.View> im
|
||||
@Override public void onSendUserToView(@Nullable UserModel userModel) {
|
||||
sendToView(view -> view.onInitViews(userModel));
|
||||
}
|
||||
|
||||
@NonNull @Override public String getLogin() {
|
||||
return login;
|
||||
}
|
||||
}
|
||||
@ -6,9 +6,12 @@ import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
||||
import com.fastaccess.R;
|
||||
import com.fastaccess.data.dao.LoginModel;
|
||||
import com.fastaccess.data.dao.UserModel;
|
||||
import com.fastaccess.helper.AnimHelper;
|
||||
import com.fastaccess.helper.BundleConstant;
|
||||
import com.fastaccess.helper.Bundler;
|
||||
import com.fastaccess.helper.InputHelper;
|
||||
@ -40,6 +43,8 @@ public class ProfileOverviewView extends BaseFragment<ProfileOverviewMvp.View, P
|
||||
@BindView(R.id.following) FontTextView following;
|
||||
@BindView(R.id.followers) FontTextView followers;
|
||||
@BindView(R.id.progress) View progress;
|
||||
@BindView(R.id.followBtn) Button followBtn;
|
||||
|
||||
|
||||
@State UserModel userModel;
|
||||
|
||||
@ -51,11 +56,14 @@ public class ProfileOverviewView extends BaseFragment<ProfileOverviewMvp.View, P
|
||||
return view;
|
||||
}
|
||||
|
||||
@OnClick({R.id.following, R.id.followers}) void onClick(View view) {
|
||||
@OnClick({R.id.following, R.id.followers, R.id.followBtn}) void onClick(View view) {
|
||||
if (view.getId() == R.id.followers) {
|
||||
profileCallback.onNavigateToFollowers();
|
||||
} else {
|
||||
} else if (view.getId() == R.id.following) {
|
||||
profileCallback.onNavigateToFollowing();
|
||||
} else if (view.getId() == R.id.followBtn) {
|
||||
getPresenter().onFollowButtonClicked(getPresenter().getLogin());
|
||||
AnimHelper.animateVisibility(followBtn, false, View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,8 +89,15 @@ public class ProfileOverviewView extends BaseFragment<ProfileOverviewMvp.View, P
|
||||
if (savedInstanceState == null) {
|
||||
getPresenter().onFragmentCreated(getArguments());
|
||||
} else {
|
||||
if (userModel != null) onInitViews(userModel);
|
||||
else getPresenter().onFragmentCreated(getArguments());
|
||||
if (userModel != null) {
|
||||
onInitViews(userModel);
|
||||
onInvalidateMenuItem();
|
||||
} else {
|
||||
getPresenter().onFragmentCreated(getArguments());
|
||||
}
|
||||
}
|
||||
if (LoginModel.getUser().getLogin().equalsIgnoreCase(getPresenter().getLogin())) {
|
||||
followBtn.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,6 +127,23 @@ public class ProfileOverviewView extends BaseFragment<ProfileOverviewMvp.View, P
|
||||
.bold(String.valueOf(userModel.getFollowing())));
|
||||
}
|
||||
|
||||
@Override public void onInvalidateMenuItem() {
|
||||
hideProgress();
|
||||
if (getPresenter().isSuccessResponse()) {
|
||||
AnimHelper.animateVisibility(followBtn, true, View.INVISIBLE, new AnimHelper.AnimationCallback() {
|
||||
@Override public void onAnimationEnd() {
|
||||
followBtn.setActivated(getPresenter().isFollowing());
|
||||
}
|
||||
|
||||
@Override public void onAnimationStart() {
|
||||
if (followBtn == null) return;
|
||||
followBtn.setText(getPresenter().isFollowing() ? getString(R.string.unfollow) : getString(R.string.follow));
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void showProgress(@StringRes int resId) {
|
||||
progress.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@ -231,17 +231,20 @@ public class RepoPagerView extends BaseActivity<RepoPagerMvp.View, RepoPagerPres
|
||||
}
|
||||
|
||||
@Override public void onRepoWatched(boolean isWatched) {
|
||||
watchRepo.tintDrawables(isWatched ? accentColor : Color.BLACK);
|
||||
watchRepo.setTopDrawable(isWatched ? R.drawable.ic_eye_off : R.drawable.ic_eye);
|
||||
watchRepo.tintDrawables(accentColor);
|
||||
onEnableDisableWatch(true);
|
||||
}
|
||||
|
||||
@Override public void onRepoStarred(boolean isStarred) {
|
||||
starRepo.tintDrawables(isStarred ? accentColor : Color.BLACK);
|
||||
starRepo.setTopDrawable(isStarred ? R.drawable.ic_star_filled : R.drawable.ic_star);
|
||||
starRepo.tintDrawables(accentColor);
|
||||
onEnableDisableStar(true);
|
||||
}
|
||||
|
||||
@Override public void onRepoForked(boolean isForked) {
|
||||
forkRepo.tintDrawables(isForked ? accentColor : Color.BLACK);
|
||||
forkRepo.setTopDrawable(isForked ? R.drawable.ic_fork_filled : R.drawable.ic_fork);
|
||||
forkRepo.tintDrawables(accentColor);
|
||||
onEnableDisableFork(true);
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
package com.fastaccess.ui.modules.user;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.fastaccess.ui.base.mvp.BaseMvp;
|
||||
import com.fastaccess.ui.modules.profile.ProfilePagerMvp;
|
||||
|
||||
@ -11,18 +9,8 @@ import com.fastaccess.ui.modules.profile.ProfilePagerMvp;
|
||||
|
||||
public interface UserPagerMvp {
|
||||
|
||||
interface View extends BaseMvp.FAView, ProfilePagerMvp.View {
|
||||
void onInvalidateMenuItem();
|
||||
}
|
||||
interface View extends BaseMvp.FAView, ProfilePagerMvp.View {}
|
||||
|
||||
interface Presenter extends BaseMvp.FAPresenter {
|
||||
void onCheckFollowStatus(@NonNull String login);
|
||||
|
||||
boolean isSuccessResponse();
|
||||
|
||||
boolean isFollowing();
|
||||
|
||||
void onFollowMenuItemClicked(@NonNull String login);
|
||||
}
|
||||
interface Presenter extends BaseMvp.FAPresenter {}
|
||||
|
||||
}
|
||||
|
||||
@ -1,47 +1,9 @@
|
||||
package com.fastaccess.ui.modules.user;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.fastaccess.provider.rest.RestProvider;
|
||||
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 03 Dec 2016, 8:00 AM
|
||||
*/
|
||||
|
||||
class UserPagerPresenter extends BasePresenter<UserPagerMvp.View> implements UserPagerMvp.Presenter {
|
||||
private boolean isSuccessResponse;
|
||||
private boolean isFollowing;
|
||||
|
||||
@Override public void onCheckFollowStatus(@NonNull String login) {
|
||||
makeRestCall(RestProvider.getUserService().getFollowStatus(login),
|
||||
booleanResponse -> {
|
||||
isSuccessResponse = true;
|
||||
isFollowing = booleanResponse.code() == 204;
|
||||
sendToView(UserPagerMvp.View::onInvalidateMenuItem);
|
||||
});
|
||||
}
|
||||
|
||||
@Override public boolean isSuccessResponse() {
|
||||
return isSuccessResponse;
|
||||
}
|
||||
|
||||
@Override public boolean isFollowing() {
|
||||
return isFollowing;
|
||||
}
|
||||
|
||||
@Override public void onFollowMenuItemClicked(@NonNull String login) {
|
||||
makeRestCall(!isFollowing ? RestProvider.getUserService().followUser(login) : RestProvider.getUserService().unfollowUser(login),
|
||||
booleanResponse -> {
|
||||
if (booleanResponse.code() == 204) {
|
||||
isFollowing = !isFollowing;
|
||||
sendToView(UserPagerMvp.View::onInvalidateMenuItem);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override public void onError(@NonNull Throwable throwable) {
|
||||
sendToView(UserPagerMvp.View::onInvalidateMenuItem);
|
||||
super.onError(throwable);
|
||||
}
|
||||
}
|
||||
class UserPagerPresenter extends BasePresenter<UserPagerMvp.View> implements UserPagerMvp.Presenter {}
|
||||
|
||||
@ -6,14 +6,9 @@ import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import com.fastaccess.R;
|
||||
import com.fastaccess.data.dao.FragmentPagerAdapterModel;
|
||||
import com.fastaccess.data.dao.LoginModel;
|
||||
import com.fastaccess.helper.BundleConstant;
|
||||
import com.fastaccess.helper.Bundler;
|
||||
import com.fastaccess.helper.InputHelper;
|
||||
@ -75,16 +70,12 @@ public class UserPagerView extends BaseActivity<UserPagerMvp.View, UserPagerPres
|
||||
return;
|
||||
}
|
||||
setTitle(login);
|
||||
onInvalidateMenuItem();
|
||||
FragmentsPagerAdapter adapter = new FragmentsPagerAdapter(getSupportFragmentManager(),
|
||||
FragmentPagerAdapterModel.buildForProfile(this, login));
|
||||
tabs.setTabGravity(TabLayout.GRAVITY_FILL);
|
||||
tabs.setTabMode(TabLayout.MODE_SCROLLABLE);
|
||||
pager.setAdapter(adapter);
|
||||
tabs.setupWithViewPager(pager);
|
||||
if (savedInstanceState == null) {
|
||||
getPresenter().onCheckFollowStatus(login);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void showProgress(@StringRes int resId) {
|
||||
@ -95,42 +86,6 @@ public class UserPagerView extends BaseActivity<UserPagerMvp.View, UserPagerPres
|
||||
super.hideProgress();
|
||||
}
|
||||
|
||||
@Override public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.follow_menu, menu);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.follow) {
|
||||
if (item.getActionView() == null) {
|
||||
MenuItemCompat.setActionView(item, new ProgressBar(this));
|
||||
getPresenter().onFollowMenuItemClicked(login);
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
if (LoginModel.getUser().getLogin().equalsIgnoreCase(login)) {
|
||||
menu.findItem(R.id.follow).setVisible(false);
|
||||
return true;
|
||||
}
|
||||
if (getPresenter().isSuccessResponse()) {
|
||||
MenuItemCompat.setActionView(menu.findItem(R.id.follow), null);
|
||||
menu.findItem(R.id.follow)
|
||||
.setVisible(true)
|
||||
.setTitle(getPresenter().isFollowing() ? getString(R.string.unfollow) : getString(R.string.follow));
|
||||
|
||||
} else {
|
||||
MenuItemCompat.setActionView(menu.findItem(R.id.follow), new ProgressBar(this));
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override public void onInvalidateMenuItem() {
|
||||
supportInvalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@Override public void onNavigateToFollowers() {
|
||||
pager.setCurrentItem(4);
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable;
|
||||
import android.os.Parcelable;
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.ColorRes;
|
||||
import android.support.annotation.DrawableRes;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.widget.AppCompatTextView;
|
||||
import android.util.AttributeSet;
|
||||
@ -45,6 +46,7 @@ public class FontTextView extends AppCompatTextView {
|
||||
@Override public void onRestoreInstanceState(Parcelable state) {
|
||||
super.onRestoreInstanceState(Icepick.restoreInstanceState(this, state));
|
||||
tintDrawables(tintColor);
|
||||
// setActivated(isActivated);
|
||||
}
|
||||
|
||||
private void init(Context context, AttributeSet attributeSet) {
|
||||
@ -62,6 +64,7 @@ public class FontTextView extends AppCompatTextView {
|
||||
}
|
||||
|
||||
public void tintDrawables(@ColorInt int color) {
|
||||
if (color == tintColor) return;
|
||||
if (color != -1) {
|
||||
this.tintColor = color;
|
||||
Drawable[] drawables = getCompoundDrawablesRelative();
|
||||
@ -78,4 +81,7 @@ public class FontTextView extends AppCompatTextView {
|
||||
setTextColor(ViewHelper.textSelector(nColor, pColor));
|
||||
}
|
||||
|
||||
public void setTopDrawable(@DrawableRes int topDrawable) {
|
||||
setCompoundDrawablesRelativeWithIntrinsicBounds(0, topDrawable, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
9
app/src/main/res/animator/fill_to_star.xml
Normal file
9
app/src/main/res/animator/fill_to_star.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"
|
||||
android:valueTo="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"
|
||||
android:valueType="pathType"/>
|
||||
9
app/src/main/res/animator/minus_to_plus.xml
Normal file
9
app/src/main/res/animator/minus_to_plus.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="@string/path_follow_minus"
|
||||
android:valueTo="@string/path_follow_plus"
|
||||
android:valueType="pathType"/>
|
||||
8
app/src/main/res/animator/plus_minus_rotate.xml
Normal file
8
app/src/main/res/animator/plus_minus_rotate.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in"
|
||||
android:propertyName="rotation"
|
||||
android:valueFrom="-180"
|
||||
android:valueTo="0"/>
|
||||
9
app/src/main/res/animator/plus_to_minus.xml
Normal file
9
app/src/main/res/animator/plus_to_minus.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="@string/path_follow_plus"
|
||||
android:valueTo="@string/path_follow_minus"
|
||||
android:valueType="pathType"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
9
app/src/main/res/animator/star_to_fill.xml
Normal file
9
app/src/main/res/animator/star_to_fill.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<objectAnimator
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in"
|
||||
android:propertyName="pathData"
|
||||
android:valueFrom="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"
|
||||
android:valueTo="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"
|
||||
android:valueType="pathType"/>
|
||||
24
app/src/main/res/drawable/asl_follow.xml
Normal file
24
app/src/main/res/drawable/asl_follow.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/following"
|
||||
android:state_activated="true"
|
||||
android:drawable="@drawable/ic_unfollow" />
|
||||
|
||||
<item
|
||||
android:id="@+id/not_following"
|
||||
android:drawable="@drawable/ic_follow" />
|
||||
|
||||
<transition
|
||||
android:fromId="@id/following"
|
||||
android:toId="@id/not_following"
|
||||
android:drawable="@drawable/avd_unfollow" />
|
||||
|
||||
<transition
|
||||
android:fromId="@id/not_following"
|
||||
android:toId="@id/following"
|
||||
android:drawable="@drawable/avd_follow" />
|
||||
|
||||
</animated-selector>
|
||||
14
app/src/main/res/drawable/avd_follow.xml
Normal file
14
app/src/main/res/drawable/avd_follow.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animated-vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:drawable="@drawable/ic_follow">
|
||||
|
||||
<target
|
||||
android:name="plus_minus"
|
||||
android:animation="@animator/plus_minus_rotate" />
|
||||
|
||||
<target
|
||||
android:name="plus"
|
||||
android:animation="@animator/plus_to_minus" />
|
||||
|
||||
</animated-vector>
|
||||
14
app/src/main/res/drawable/avd_unfollow.xml
Normal file
14
app/src/main/res/drawable/avd_unfollow.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<animated-vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:drawable="@drawable/ic_follow">
|
||||
|
||||
<target
|
||||
android:name="plus_minus"
|
||||
android:animation="@animator/plus_minus_rotate" />
|
||||
|
||||
<target
|
||||
android:name="plus"
|
||||
android:animation="@animator/minus_to_plus" />
|
||||
|
||||
</animated-vector>
|
||||
26
app/src/main/res/drawable/ic_follow.xml
Normal file
26
app/src/main/res/drawable/ic_follow.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24">
|
||||
|
||||
<group
|
||||
android:name="plus_minus"
|
||||
android:pivotX="5"
|
||||
android:pivotY="11">
|
||||
|
||||
<path
|
||||
android:name="plus"
|
||||
android:fillColor="@color/white"
|
||||
android:pathData="@string/path_follow_plus"/>
|
||||
|
||||
</group>
|
||||
|
||||
<path
|
||||
android:name="person"
|
||||
android:fillColor="@color/white"
|
||||
android:pathData="@string/path_follow_person"/>
|
||||
|
||||
</vector>
|
||||
@ -1,4 +1,3 @@
|
||||
<!-- drawable/source_fork.xml -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
|
||||
352
app/src/main/res/drawable/ic_fork_filled.xml
Normal file
352
app/src/main/res/drawable/ic_fork_filled.xml
Normal file
@ -0,0 +1,352 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24">
|
||||
|
||||
<path
|
||||
android:pathData="M -1 -1 H 25 V 25 H -1 V -1 Z"/>
|
||||
<path
|
||||
|
||||
android:pathData="M 0 0 H 100 V 100 H 0 V 0 Z"/>
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M6,2a3,3 0 0 1 3,3c0,1.28 -0.81,2.38 -1.94,2.81c0.09,0.46 0.33,1.02
|
||||
0.94,1.82c1,1.29 3,3.2 4,4.54c1,-1.34 3,-3.25 4,-4.54c0.61,-0.8 0.85,-1.36
|
||||
0.94,-1.82c-1.13,-0.43 -1.94,-1.53 -1.94,-2.81a3,3 0 0 1 3,-3a3,3 0 0 1
|
||||
3,3c0,1.32 -0.86,2.45 -2.05,2.85c-0.08,0.52 -0.31,1.15 -0.95,1.98c-1,1.34
|
||||
-3,3.25 -4,4.55c-0.61,0.79 -0.85,1.35 -0.94,1.81c1.13,0.43 1.94,1.53
|
||||
1.94,2.81a3,3 0 0 1 -3,3a3,3 0 0 1 -3,-3c0,-1.28 0.81,-2.38
|
||||
1.94,-2.81c-0.09,-0.46 -0.33,-1.02 -0.94,-1.81c-1,-1.3 -3,-3.21
|
||||
-4,-4.55c-0.64,-0.83 -0.87,-1.46 -0.95,-1.98c-1.19,-0.4 -2.05,-1.53
|
||||
-2.05,-2.85a3,3 0 0 1 3,-3m0,2a1,1 0 0 0 -1,1a1,1 0 0 0 1,1a1,1 0 0 0 1,-1a1,1 0
|
||||
0 0 -1,-1m12,0a1,1 0 0 0 -1,1a1,1 0 0 0 1,1a1,1 0 0 0 1,-1a1,1 0 0 0
|
||||
-1,-1m-6,14a1,1 0 0 0 -1,1a1,1 0 0 0 1,1a1,1 0 0 0 1,-1a1,1 0 0 0 -1,-1z"/>
|
||||
<path
|
||||
android:pathData="M4.264152,3.556604c0.09434,0 0.283019,0 0.377358,0c0.188679,0 0.377358,0
|
||||
0.471698,0c0.094339,0 0.283019,0 0.471698,0c0.09434,0 0.283019,0
|
||||
0.283019,0c0.09434,0 0.188679,0 0.188679,0c0.094339,0.09434 0.137623,0.065419
|
||||
0.188679,0.188679c0.036102,0.087159 0.09434,0.188679 0.09434,0.283019c0,0.094339
|
||||
0.094339,0.188679 0.094339,0.283019c0,0.09434 0.043283,0.159759
|
||||
0.094339,0.283019c0.036102,0.087158 0,0.188679 0,0.283019c0,0.094339 0,0.188679
|
||||
0,0.283019c0,0.09434 0,0.188679 0,0.188679c0,0.188679 0.036102,0.19586
|
||||
0,0.283019c-0.051056,0.12326 -0.094339,0.094339 -0.188679,0.188679c0,0
|
||||
-0.09434,0.094339 -0.09434,0.094339c-0.09434,0 -0.09434,0.09434
|
||||
-0.188679,0.09434c0,0 -0.094339,0.094339 -0.094339,0.094339c-0.09434,0
|
||||
-0.18868,0.09434 -0.283019,0.09434c0,0 -0.09434,0 -0.188679,0c-0.09434,0
|
||||
-0.228194,-0.039515 -0.377358,-0.188679c-0.149164,-0.149164 -0.158456,-0.379795
|
||||
-0.188679,-0.566038c-0.047787,-0.294476 -0.235619,-0.464698
|
||||
-0.283019,-0.943396c-0.018592,-0.187761 0,-0.471698 0,-0.660378c0,-0.09434
|
||||
0,-0.283019 0,-0.377358c0,0 0.09434,-0.09434 0.09434,-0.09434c0.094339,0
|
||||
0.188679,0 0.283019,0c0.09434,0 0.254014,0.017548
|
||||
0.377358,0.188679c0.07801,0.108233 0.27879,0.146147
|
||||
0.377358,0.471698c0.054676,0.180583 0.14533,0.382406
|
||||
0.18868,0.566038c0.048466,0.205307 0.140213,0.455071
|
||||
0.188679,0.660378c0.04335,0.183632 0,0.377358 0,0.471698c0,0.188679
|
||||
-0.094339,0.377358 -0.188679,0.471698c-0.09434,0.09434 -0.159759,0.137623
|
||||
-0.283019,0.188679c-0.087159,0.036102 -0.09434,0.094339 -0.283019,0.094339c0,0
|
||||
-0.101521,0.036102 -0.188679,0c-0.12326,-0.051056 -0.094339,-0.188679
|
||||
-0.094339,-0.377358c0,-0.283019 0,-0.566038 0,-0.754717c0,-0.283019 0,-0.566038
|
||||
0.094339,-0.754717c0.09434,-0.188679 0.283019,-0.377358
|
||||
0.377358,-0.471698c0.09434,-0.09434 0.159758,-0.231962
|
||||
0.283019,-0.283019c0.087159,-0.036102 0.188679,0 0.188679,0c0.094339,0
|
||||
0.110669,0.080446 0.188679,0.188679c0.123345,0.171131 0.064117,0.285455
|
||||
0.09434,0.471698c0.047787,0.294476 0.094339,0.377358
|
||||
0.094339,0.471698c0,0.188679 -0.043283,0.348438
|
||||
-0.094339,0.471698c-0.036102,0.087158 -0.082883,0.235232
|
||||
-0.377358,0.283019c-0.093122,0.015111 -0.18868,0.09434
|
||||
-0.377359,0.09434c-0.094339,0 -0.283019,0 -0.377358,0c-0.094339,0
|
||||
-0.234552,-0.077713 -0.283019,-0.283019c-0.04335,-0.183632 0,-0.283019
|
||||
0,-0.566038c0,-0.094339 0,-0.377358 0,-0.471698c0,-0.09434 0.094339,-0.283019
|
||||
0.188679,-0.377359c0.094339,-0.094339 0.188679,-0.094339
|
||||
0.283019,-0.094339c0.09434,0 0.216311,-0.066708 0.283019,0c0.066708,0.066708
|
||||
0.05099,0.193727 0.094339,0.377358c0.048467,0.205307 0.09434,0.377358
|
||||
0.09434,0.566038c0,0.188679 0.04335,0.288066 0,0.471698c-0.048467,0.205307
|
||||
-0.2902,0.341257 -0.377358,0.377358c-0.12326,0.051056 -0.266392,0.140213
|
||||
-0.471698,0.188679c-0.183632,0.04335 -0.283019,0 -0.377358,0c-0.188679,0
|
||||
-0.328892,-0.077713 -0.377358,-0.283019c-0.065024,-0.275447 0,-0.471698
|
||||
0,-0.754717c0,-0.094339 0.09434,-0.377358 0.188679,-0.471698c0.09434,-0.09434
|
||||
0.285543,-0.261344 0.377358,-0.283019c0.205307,-0.048467 0.283019,-0.09434
|
||||
0.283019,-0.09434l0.094339,0l0.09434,0l0,0"
|
||||
android:strokeColor="#000"
|
||||
android:strokeWidth="1.5"/>
|
||||
<path
|
||||
android:pathData="M4.075472,3.745284c0.09434,0 0.09434,0 0.188679,0c0,0 0.09434,0
|
||||
0.188679,0c0.09434,0 0.09434,0 0.188679,0c0.09434,0 0.09434,0
|
||||
0.188679,0c0.09434,0 0.188679,0 0.283019,0c0,0 0.094339,0 0.188679,0c0,0
|
||||
0.094339,0 0.188679,0c0.094339,0 0.188679,0 0.188679,0c0.094339,0 0.188679,0
|
||||
0.283019,0c0,0 0.094339,0 0.188679,0c0,0 0.09434,0 0.18868,0c0,0 0.094339,0
|
||||
0.188679,0c0.09434,0 0.09434,0 0.188679,0c0,0 0.09434,0 0.09434,0c0.094339,0
|
||||
0.188679,0.09434 0.188679,0.09434c0.09434,0.09434 0.09434,0.188679
|
||||
0.188679,0.283019c0.09434,0.09434 0.058238,0.19586
|
||||
0.09434,0.283019c0.051056,0.12326 0.094339,0.188679 0.094339,0.283019c0,0.09434
|
||||
0,0.18868 0,0.283019c0,0.09434 0,0.09434 0,0.188679c0,0 0,0 0,0.09434c0,0
|
||||
0,0.094339 0,0.094339c-0.094339,0.09434 -0.094339,0.09434 -0.188679,0.188679c0,0
|
||||
-0.101521,0.058238 -0.188679,0.09434c-0.12326,0.051056 -0.101521,0.152577
|
||||
-0.188679,0.188679c-0.12326,0.051056 -0.121971,0.121971
|
||||
-0.188679,0.188679c-0.066708,0.066708 -0.027631,0.121971
|
||||
-0.09434,0.188679c-0.066708,0.066708 -0.121971,0.027631
|
||||
-0.188679,0.094339c-0.066709,0.066709 -0.058238,0.101521
|
||||
-0.09434,0.188679c-0.051056,0.123261 -0.09434,0.09434 -0.09434,0.09434c0,0
|
||||
0,0.094339 0,0.094339c0,0 0,-0.094339 0,-0.094339c0.09434,-0.09434
|
||||
0.172116,-0.103574 0.283019,-0.283019c0.049597,-0.08025 0.202769,-0.233421
|
||||
0.283019,-0.283019c0.179445,-0.110903 0.103574,-0.266456
|
||||
0.283019,-0.377358c0.08025,-0.049597 0.216311,-0.027631
|
||||
0.283019,-0.09434c0.066708,-0.066708 0,-0.094339 0.094339,-0.094339c0,0 0,0
|
||||
0,0c0,0.094339 0.036102,0.19586 0,0.283019c-0.051056,0.12326 -0.234552,0.172052
|
||||
-0.283019,0.377358c-0.04335,0.183632 -0.09434,0.283019
|
||||
-0.18868,0.377358c-0.09434,0.09434 -0.121971,0.216311
|
||||
-0.188679,0.283019c-0.066708,0.066708 -0.094339,0.094339 -0.094339,0.188679c0,0
|
||||
0,0 0,-0.09434c0,-0.188679 -0.04335,-0.288066 0,-0.471698c0.048466,-0.205307
|
||||
0.057608,-0.392385 0.188679,-0.660378c0.149444,-0.305558 0.239669,-0.382406
|
||||
0.283019,-0.566038c0.048466,-0.205307 0.188679,-0.377358
|
||||
0.283019,-0.471698c0.09434,-0.09434 0.09434,-0.188679
|
||||
0.09434,-0.188679c0.094339,0 0.094339,0 0.094339,0c0,0 0,0.094339
|
||||
0,0.188679c0,0.09434 0.036102,0.2902 0,0.377359c-0.051056,0.12326
|
||||
-0.094339,0.188679 -0.094339,0.188679c0,0.094339 0,0.094339 0,0.094339c0,0.09434
|
||||
0,0.09434 0,0.09434c0,0 0,-0.09434 0,-0.283019c0,-0.094339 0,-0.283019
|
||||
0,-0.471698c0,-0.188679 0,-0.283019 0,-0.377358c0,-0.094339 0,-0.188679
|
||||
0,-0.188679c0,0 0.030223,0.191115 0,0.377359c-0.047787,0.294476
|
||||
-0.168854,0.573437 -0.283019,0.849056c-0.080727,0.194892 -0.168854,0.384758
|
||||
-0.283019,0.660378c-0.080727,0.194892 -0.152577,0.38454
|
||||
-0.188679,0.471698c-0.051056,0.12326 -0.094339,0.188679
|
||||
-0.094339,0.188679c-0.09434,0 -0.09434,0 -0.09434,-0.094339c0,-0.09434
|
||||
0,-0.188679 0,-0.283019c0,-0.188679 -0.094339,-0.283019
|
||||
-0.094339,-0.471698c0,-0.188679 0,-0.377358 0,-0.566038c0,-0.188679 0,-0.283019
|
||||
0,-0.377358c0,-0.09434 0,-0.18868 0,-0.18868c0,-0.094339 0,-0.094339
|
||||
0,-0.188679c0,0 0,0 0,-0.09434c0,0 0,0 0,0c0,-0.09434 0,-0.09434
|
||||
0,-0.09434c0,-0.094339 -0.027631,-0.121971
|
||||
-0.094339,-0.188679c-0.066708,-0.066708 0,-0.188679 0,-0.188679c0,-0.09434
|
||||
0,-0.09434 0,-0.09434c0,-0.09434 0,0 0,0l0,0.09434l0,0.09434"
|
||||
android:strokeColor="#000"
|
||||
android:strokeWidth="1.5"/>
|
||||
<path
|
||||
android:pathData="M18.415094,5.443397c-0.094339,0 -0.094339,0 -0.094339,0c0,0 0,-0.09434
|
||||
0,-0.188679c0,-0.09434 0,-0.09434 0,-0.188679c0,0 0,-0.09434 0,-0.09434c0,0
|
||||
0,-0.094339 0,-0.094339c0.094339,-0.09434 0.188679,-0.09434
|
||||
0.188679,-0.09434c0.094339,0 0.188679,0 0.283018,0c0,0 0.094339,0 0.094339,0c0,0
|
||||
0.094339,0 0.094339,0c0,0.09434 0,0.09434 0,0.188679c0,0.188679 0.036102,0.2902
|
||||
0,0.377358c-0.051056,0.12326 -0.188679,0.188679 -0.283018,0.283019c0,0
|
||||
-0.19586,0.058237 -0.283018,0.094339c-0.12326,0.051056 -0.28302,0.09434
|
||||
-0.377359,0.09434c-0.094339,0 -0.188679,0 -0.283018,0c-0.094339,0
|
||||
-0.152578,-0.007181 -0.188681,-0.09434c-0.051056,-0.12326 -0.094339,-0.188679
|
||||
-0.094339,-0.188679c0,-0.094339 0,-0.188679 0,-0.188679c0,-0.094339 0,-0.094339
|
||||
0,-0.094339c0,-0.09434 0.027632,-0.161048 0.094339,-0.09434c0.066708,0.066709
|
||||
0,0.188679 0,0.188679c0,0.09434 0,0.188679 0,0.283019c0,0.094339
|
||||
-0.121971,0.121971 -0.188679,0.188679c-0.066708,0.066708 -0.094339,0.188679
|
||||
-0.094339,0.188679c0,0 -0.094339,0 -0.094339,0c0,0 -0.094339,0
|
||||
-0.094339,-0.188679c0,-0.188679 0,-0.471698 0,-0.754717c0,-0.188679 0,-0.471698
|
||||
0,-0.754717c0,-0.188679 0,-0.377358 0,-0.566038c0,-0.094339 0.027632,-0.121971
|
||||
0.094339,-0.188679c0.066708,-0.066708 0.094339,-0.094339
|
||||
0.094339,-0.094339c0.094339,0 0.094339,0 0.188679,0c0.094339,0 0.094339,0
|
||||
0.094339,0c0.094341,0 0.188681,0.094339 0.188681,0.188679c0,0.094339
|
||||
0.094339,0.188679 0.094339,0.377358c0,0.094339 0,0.188679 0,0.283019c0,0.18868
|
||||
0,0.283019 0,0.283019c0,0.094339 -0.027632,0.027631
|
||||
-0.094339,0.094339c-0.066708,0.066709 0,0.09434 0,0.09434c-0.094339,0
|
||||
-0.094339,0 -0.094339,-0.09434c0,-0.094339 0,-0.094339 0,-0.283019c0,0
|
||||
-0.133417,-0.149603 0,-0.283019c0.066708,-0.066708 0.111887,-0.065334
|
||||
0.283018,-0.188679c0.108232,-0.07801 0.077711,-0.140213
|
||||
0.283018,-0.188679c0.091818,-0.021675 0.094341,0 0.28302,0c0,0 0.094339,0
|
||||
0.094339,0c0,0 0.094339,0.09434 0.094339,0.188679c0,0.283019 0,0.377358
|
||||
0,0.566038c0,0.283019 0.021675,0.474222 0,0.566038c-0.048466,0.205307
|
||||
-0.133854,0.416874 -0.283018,0.566038c-0.149164,0.149165 -0.191204,0.167005
|
||||
-0.28302,0.188679c-0.205307,0.048466 -0.283018,0.188679
|
||||
-0.377357,0.188679c-0.094339,0 -0.188681,0 -0.28302,0c-0.094339,0
|
||||
-0.137623,-0.065419 -0.188679,-0.188679c-0.036102,-0.087159 -0.045874,-0.172052
|
||||
-0.094339,-0.377358c-0.04335,-0.183632 0,-0.377358 0,-0.566038c0,-0.18868
|
||||
0,-0.377358 0,-0.566038c0,-0.188679 0.094339,-0.283019
|
||||
0.188679,-0.377358c0.094339,-0.09434 0.188679,-0.09434
|
||||
0.188679,-0.09434c0.188681,0 0.188681,0 0.28302,0c0.094339,0 0.121971,-0.066708
|
||||
0.188679,0c0.133417,0.133416 0.094339,0.283019 0.094339,0.377358c0,0.094339
|
||||
0,0.283019 0,0.471698c0,0.09434 0,0.283019 0,0.471698c0,0.09434
|
||||
-0.065418,0.231963 -0.188679,0.283019c-0.087158,0.036102 -0.188679,0.094339
|
||||
-0.283018,0.094339c-0.094341,0 -0.188681,0 -0.28302,0c-0.094339,0
|
||||
-0.149603,0.133416 -0.283018,0c-0.133417,-0.133416 -0.140213,-0.360731
|
||||
-0.188679,-0.566038c-0.04335,-0.183632 0,-0.377358 0,-0.566038c0,-0.188679
|
||||
0,-0.377358 0,-0.566038c0,-0.09434 -0.066708,-0.31065
|
||||
0,-0.377358c0.066708,-0.066708 0.159758,-0.137623
|
||||
0.283018,-0.188679c0.087158,-0.036102 0.283018,0 0.471699,0c0.094339,0
|
||||
0.283018,0 0.471697,0c0.094339,0 0.266457,-0.085105
|
||||
0.377359,0.09434c0.049597,0.08025 0.137623,0.159758
|
||||
0.188679,0.283019c0.072205,0.174317 0.094339,0.283019
|
||||
0.094339,0.471698c0,0.09434 0.04335,0.382406 0,0.566038c-0.048466,0.205307
|
||||
-0.233421,0.391448 -0.283018,0.471698c-0.110903,0.179444 -0.28302,0.283019
|
||||
-0.471699,0.377358c-0.188679,0.09434 -0.285542,0.167005
|
||||
-0.377357,0.188679c-0.205309,0.048466 -0.188681,0.09434
|
||||
-0.28302,0.09434c-0.094339,0 -0.216311,0.066708 -0.283018,0c-0.066708,-0.066709
|
||||
-0.072664,-0.285543 -0.094339,-0.377358c-0.048466,-0.205307 -0.094339,-0.471698
|
||||
-0.094339,-0.566038c0,-0.18868 0,-0.471698 0,-0.566038c0,-0.188679
|
||||
0.137623,-0.348437 0.188679,-0.471698c0.036102,-0.087159 0.19586,-0.152577
|
||||
0.283018,-0.188679c0.246521,-0.102113 0.471699,-0.188679
|
||||
0.566038,-0.188679c0.188679,0 0.471699,0 0.660378,0c0.188679,0 0.377357,0
|
||||
0.471699,0c0.094339,0 0.116474,0.108702 0.188679,0.283019c0.051056,0.123261
|
||||
0.140213,0.266392 0.188679,0.471698c0.04335,0.183632 0,0.377358
|
||||
0,0.660378c0,0.094339 -0.159674,0.206227 -0.283018,0.377358c-0.078011,0.108233
|
||||
-0.225178,0.275246 -0.471699,0.377358c-0.087158,0.036102 -0.254097,0.043283
|
||||
-0.377357,0.094339c-0.261477,0.108307 -0.377359,0 -0.566038,0c-0.094339,0
|
||||
-0.205009,0.013894 -0.28302,-0.094339c-0.123344,-0.171131 -0.188679,-0.283019
|
||||
-0.188679,-0.471698c0,-0.094339 0,-0.377358 0,-0.471698c0,-0.188679 0,-0.377358
|
||||
0,-0.566038c0,-0.094339 -0.029005,-0.206227
|
||||
0.094339,-0.377358c0.078011,-0.108233 0.172052,-0.234552
|
||||
0.377359,-0.283019c0.183632,-0.043349 0.377357,0 0.566038,0c0.094339,0
|
||||
0.283018,0 0.471697,0c0.094339,0 0.188679,0 0.188679,0c0.094341,0.094339
|
||||
0.022137,0.203042 0.094341,0.377358c0.051056,0.12326 0.094339,0.283019
|
||||
0.094339,0.377358c0,0.188679 0.029005,0.300567
|
||||
-0.094339,0.471698c-0.078011,0.108234 -0.174788,0.299349
|
||||
-0.28302,0.377359c-0.171131,0.123344 -0.348436,0.231963
|
||||
-0.471697,0.283019c-0.174318,0.072205 -0.377359,0.09434
|
||||
-0.471699,0.09434c-0.188679,0 -0.28302,0 -0.471699,0c-0.094339,0
|
||||
-0.101521,0.036102 -0.188679,0c-0.12326,-0.051056 -0.140213,-0.266392
|
||||
-0.188679,-0.471698c-0.021675,-0.091815 0,-0.377358 0,-0.566038c0,-0.09434
|
||||
-0.036102,-0.38454 0,-0.471698c0.051056,-0.12326 0.19586,-0.341257
|
||||
0.283018,-0.377359c0.246521,-0.102112 0.288065,-0.145329
|
||||
0.471699,-0.188679c0.205307,-0.048466 0.377357,-0.09434
|
||||
0.471697,-0.09434c0.188681,0 0.377359,0 0.471699,0c0.094339,0 0.094339,0.09434
|
||||
0.188679,0.283019c0.094339,0.188679 0.094339,0.377359
|
||||
0.094339,0.566038c0,0.188679 0,0.377359 0,0.660378c0,0.09434 0.029005,0.300567
|
||||
-0.094339,0.471698c-0.078011,0.108233 -0.197912,0.266456
|
||||
-0.377357,0.377358c-0.08025,0.049597 -0.290201,0.058237
|
||||
-0.377359,0.094339c-0.12326,0.051056 -0.283018,0.09434
|
||||
-0.377357,0.09434c-0.188681,0 -0.28302,0 -0.377359,-0.09434c-0.094339,-0.094339
|
||||
-0.065334,-0.300566 -0.188679,-0.471698c-0.078011,-0.108233 -0.094339,-0.377358
|
||||
-0.094339,-0.566038c0,-0.188679 0,-0.377358 0,-0.471698c0,-0.188679
|
||||
0.094339,-0.283019 0.188679,-0.377358c0.094339,-0.09434 0.254097,-0.137623
|
||||
0.377359,-0.188679c0.174316,-0.072203 0.377357,0 0.566036,0c0.094341,0 0.28302,0
|
||||
0.471699,0c0.188679,0 0.326302,-0.028922 0.377359,0.094339c0.036102,0.087158
|
||||
0.137623,0.159759 0.188679,0.283019c0.072205,0.174317 0.043283,0.254098
|
||||
0.094339,0.377358c0.072205,0.174317 0,0.283019 0,0.471698c0,0.188679
|
||||
-0.180906,0.225177 -0.283018,0.471698c-0.072205,0.174317 -0.130838,0.463925
|
||||
-0.377359,0.566038c-0.087158,0.036102 -0.283018,0.094339
|
||||
-0.471699,0.188679c-0.188679,0.094339 -0.29738,0.022136
|
||||
-0.471697,0.09434c-0.12326,0.051056 -0.28302,0.094339 -0.377359,0.094339c0,0
|
||||
-0.137623,0.028921 -0.188679,-0.094339c-0.036102,-0.087159 -0.094339,-0.188679
|
||||
-0.094339,-0.377358c0,-0.188679 0,-0.377358 0,-0.471698c0,-0.188679 0,-0.377358
|
||||
0,-0.566038c0,-0.09434 0,-0.188679 0,-0.283019c0,0 0.027632,-0.027632
|
||||
0.094339,-0.09434c0.066708,-0.066709 0,-0.09434 0.094339,-0.09434l0,0"
|
||||
android:strokeColor="#000"
|
||||
android:strokeWidth="1.5"/>
|
||||
<path
|
||||
android:pathData="M10.301887,18.084906c0,-0.094339 0,-0.094339 0,-0.28302c0,-0.094339
|
||||
0.065335,-0.206226 0.18868,-0.377357c0.156019,-0.216465 0.394906,-0.254015
|
||||
0.566037,-0.377359c0.108233,-0.078011 0.266392,-0.234552
|
||||
0.471699,-0.283018c0.183632,-0.04335 0.377358,0 0.471698,0c0.094339,0 0.188679,0
|
||||
0.283019,0c0,0 0.094339,0 0.094339,0c0,0.094339 0.094339,0.188679
|
||||
0.094339,0.283018c0,0.094339 0.058237,0.290201
|
||||
0.094339,0.377359c0.051057,0.12326 0.09434,0.283018 0.09434,0.377357c0,0.188681
|
||||
0,0.28302 0,0.471699c0,0.188679 0,0.283018 0,0.471699c0,0.188679 0,0.283018
|
||||
0,0.471697c0,0.094339 0,0.28302 0,0.377359c0,0.094339 -0.027632,0.216309
|
||||
-0.09434,0.283018c-0.066708,0.066708 0,0.188679 0,0.188679c-0.094339,0.094341
|
||||
-0.094339,0.094341 -0.094339,0.094341c-0.094339,0.094339 -0.094339,0.094339
|
||||
-0.188679,0.094339c0,0 -0.09434,0.094339 -0.18868,0.094339c0,0 -0.094339,0
|
||||
-0.094339,0c-0.094339,0 -0.19586,0.036102 -0.283019,0c-0.12326,-0.051056
|
||||
-0.159674,-0.206226 -0.283019,-0.377359c-0.07801,-0.108232 -0.231962,-0.254097
|
||||
-0.283018,-0.377357c-0.108307,-0.261477 -0.072665,-0.474222
|
||||
-0.09434,-0.566038c-0.048466,-0.205307 -0.094339,-0.377357
|
||||
-0.094339,-0.471699c0,-0.094339 0,-0.188679 0,-0.188679c0,-0.094339 0,-0.188679
|
||||
0,-0.188679c0,-0.094339 0,-0.094339 0,-0.094339c0.094339,-0.094339
|
||||
0.159758,-0.137623 0.283019,-0.188681c0.087158,-0.036102 0.283019,-0.094339
|
||||
0.283019,-0.094339c0.188679,0 0.283019,-0.094339 0.377358,-0.094339c0.094339,0
|
||||
0.188679,0 0.283018,0c0.09434,0 0.18868,0 0.283019,0c0,0 0.094339,0
|
||||
0.094339,0c0,0 0.058239,0.101521 0.09434,0.188679c0.051056,0.123262
|
||||
0.094339,0.188681 0.094339,0.28302c0,0.094339 0,0.283018 0,0.377357c0,0.094341
|
||||
0,0.188681 0,0.377359c0,0.094339 -0.094339,0.094339
|
||||
-0.18868,0.188679c-0.094339,0.094339 -0.094339,0.188679
|
||||
-0.283018,0.188679c-0.09434,0 -0.283019,0.094339 -0.377358,0.094339c-0.18868,0
|
||||
-0.283019,0 -0.471699,0c-0.188679,0 -0.290199,0.036102
|
||||
-0.377358,0c-0.12326,-0.051056 -0.152576,-0.101521
|
||||
-0.188679,-0.188679c-0.051056,-0.12326 -0.167005,-0.285542
|
||||
-0.18868,-0.377357c-0.048466,-0.205307 -0.137623,-0.348438
|
||||
-0.188679,-0.471699c-0.072205,-0.174316 0,-0.377357 0,-0.471699c0,-0.094339
|
||||
0,-0.377357 0,-0.377357c0.094339,-0.094339 0.177221,-0.329571
|
||||
0.471698,-0.377359c0.093122,-0.015112 0.254098,-0.137623
|
||||
0.377358,-0.188679c0.261476,-0.108307 0.377358,0 0.566038,0c0.188679,0
|
||||
0.377358,0 0.471698,0c0.188679,0 0.19586,-0.036102 0.283019,0c0.12326,0.051056
|
||||
0.137623,0.159758 0.188679,0.28302c0.036101,0.087158 0.09434,0.283018
|
||||
0.09434,0.471697c0,0.188679 0,0.377359 0,0.566038c0,0.094339 0,0.283018
|
||||
0,0.377359c0,0.188679 -0.065419,0.326302 -0.18868,0.377357c-0.087158,0.036102
|
||||
-0.101521,0.058237 -0.18868,0.094339c-0.12326,0.051056 -0.094339,0.094339
|
||||
-0.188679,0.094339c0,0 -0.094339,0 -0.094339,0c0,0 -0.09434,0 -0.09434,0c0,0
|
||||
-0.043283,0.028921 -0.094339,-0.094339c-0.036102,-0.087158 -0.043283,-0.159758
|
||||
-0.094339,-0.283018c-0.036102,-0.087158 0,-0.188679 0,-0.28302c0,-0.094339
|
||||
0,-0.188679 0,-0.283018c0,0 0.027632,-0.027632
|
||||
0.094339,-0.094339c0.066708,-0.066708 0.18868,0 0.18868,0c0.094339,0 0.094339,0
|
||||
0.188679,0c0,0 0.094339,0 0.094339,0c0.09434,0 0.022136,0.108702
|
||||
0.09434,0.283018c0.051056,0.12326 0.094339,0.188681 0.094339,0.377359c0,0.094339
|
||||
0.036102,0.290199 0,0.377357c-0.051056,0.12326 -0.172116,0.103575
|
||||
-0.283019,0.28302c-0.049597,0.08025 -0.159758,0.137623
|
||||
-0.283019,0.188679c-0.174316,0.072205 -0.254097,0.043283
|
||||
-0.377357,0.094339c-0.174317,0.072205 -0.283019,0 -0.283019,0c-0.18868,0
|
||||
-0.231963,-0.065418 -0.283019,-0.188679c-0.036102,-0.087158 0,-0.188681
|
||||
0,-0.377359c0,-0.188679 0,-0.283018 0,-0.471697c0,-0.094339 -0.049597,-0.29711
|
||||
0,-0.377359c0.110903,-0.179443 0.254098,-0.231962
|
||||
0.377358,-0.283018c0.087158,-0.036102 0.18868,-0.094339
|
||||
0.283019,-0.094339c0.094339,0 0.188679,0 0.188679,0c0.094339,0
|
||||
0.231963,-0.028921 0.283019,0.094339c0.036102,0.087158 0.022136,0.29738
|
||||
0.094339,0.471697c0.051056,0.123262 0.094339,0.28302
|
||||
0.094339,0.471699c0,0.094339 0,0.188679 0,0.377357c0,0.094341 -0.094339,0.188681
|
||||
-0.188679,0.28302c-0.094339,0.094339 -0.283019,0.188679
|
||||
-0.377358,0.188679c-0.094339,0 -0.283019,0.094339 -0.377358,0.094339c-0.094339,0
|
||||
-0.18868,0 -0.283019,0c-0.094339,0 -0.121971,0.066708
|
||||
-0.188679,0c-0.066708,-0.066708 0,-0.283018 0,-0.377357c0,-0.188681 0,-0.377359
|
||||
0,-0.660378c0,-0.188679 0,-0.377359 0,-0.471699c0,-0.188679 -0.049597,-0.297108
|
||||
0,-0.377357c0.110903,-0.179443 0.290199,-0.058237
|
||||
0.377358,-0.094339c0.123261,-0.051058 0.283019,-0.094341
|
||||
0.377358,-0.094341c0.094339,0 0.188679,0 0.377358,0c0.094339,0 0.094339,0.094341
|
||||
0.188679,0.188681c0.094339,0.094339 0.094339,0.188679
|
||||
0.094339,0.283018c0,0.188679 0,0.377359 0,0.471699c0,0.094339 0,0.283018
|
||||
0,0.377357c0,0 -0.007181,0.152576 -0.094339,0.188679c-0.123261,0.051058
|
||||
-0.159758,0.137625 -0.283019,0.188681c-0.174316,0.072205 -0.283018,0.094339
|
||||
-0.377357,0.094339c-0.18868,0 -0.283019,0 -0.377359,0c-0.094339,0
|
||||
-0.19586,0.036102 -0.283018,0c-0.123261,-0.051056 -0.167005,-0.191202
|
||||
-0.18868,-0.28302c-0.048466,-0.205307 -0.094339,-0.377357
|
||||
-0.094339,-0.471697c0,-0.188679 0,-0.377359 0,-0.471699c0,-0.188679
|
||||
0.086567,-0.225176 0.188679,-0.471697c0.036103,-0.08716 0.174787,-0.205009
|
||||
0.283019,-0.28302c0.171132,-0.123344 0.283019,-0.188679
|
||||
0.471699,-0.188679c0.094339,0 0.188679,-0.094339 0.377357,-0.094339c0.09434,0
|
||||
0.195861,-0.036102 0.283019,0c0.12326,0.051056 0.167005,0.191202
|
||||
0.18868,0.283018c0.048466,0.205307 0.188679,0.28302 0.188679,0.471699c0,0.283018
|
||||
0,0.471699 0,0.566038c0,0.283018 0,0.377357 0,0.566036c0,0.094339
|
||||
0.028921,0.326303 -0.094339,0.377359c-0.087158,0.036102 -0.195861,0.152576
|
||||
-0.283019,0.188679c-0.12326,0.051056 -0.188679,0.094339
|
||||
-0.188679,0.094339c-0.09434,0.094339 -0.18868,0.094339
|
||||
-0.18868,0.094339c-0.094339,0 -0.188679,0 -0.188679,0c-0.094339,0
|
||||
-0.137623,0.028921 -0.18868,-0.094339c-0.072205,-0.174316 0.043349,-0.288065
|
||||
0,-0.471697c-0.048466,-0.205307 -0.094339,-0.377359
|
||||
-0.094339,-0.566038c0,-0.188679 0,-0.377359 0,-0.471699c0,-0.188679 0,-0.283018
|
||||
0.094339,-0.377357c0.09434,-0.094339 0.174787,-0.205009
|
||||
0.283019,-0.28302c0.171131,-0.123344 0.348437,-0.137623
|
||||
0.471698,-0.188679c0.174317,-0.072205 0.283019,0 0.471699,0c0.094339,0
|
||||
0.188679,0 0.283018,0c0.09434,0 0.18868,0 0.18868,0.188679c0,0.094339
|
||||
0.094339,0.188681 0.094339,0.28302c0,0.188679 0,0.283018 0,0.377357c0,0.188681
|
||||
-0.007181,0.246918 -0.094339,0.28302c-0.246521,0.102112 -0.197914,0.266455
|
||||
-0.377358,0.377357c-0.160501,0.099195 -0.266392,0.140213
|
||||
-0.471699,0.188679c-0.091816,0.021675 -0.191202,0.072664
|
||||
-0.283018,0.094339c-0.205308,0.048468 -0.283019,0.094341
|
||||
-0.377358,0.094341c-0.094339,0 -0.18868,0 -0.283019,0c-0.094339,0
|
||||
-0.231963,0.028921 -0.283019,-0.094341c-0.036101,-0.087158 -0.022135,-0.203041
|
||||
-0.094339,-0.377357c-0.051056,-0.12326 -0.094339,-0.188679
|
||||
-0.094339,-0.377357c0,-0.188681 0,-0.377359 0,-0.471699c0,-0.188679 0,-0.28302
|
||||
0,-0.377359c0,-0.094339 0.065418,-0.137623 0.188679,-0.188679c0.087158,-0.036102
|
||||
0.18868,0 0.283019,0c0.18868,0 0.283019,0 0.377358,0c0.094339,0 0.188679,0
|
||||
0.283019,0c0.094339,0 0.137623,0.159758 0.188679,0.283018c0.072205,0.174318
|
||||
0,0.377359 0,0.660378c0,0.094341 0.065024,0.29059 0,0.566038c-0.048466,0.205307
|
||||
-0.205009,0.457806 -0.283019,0.566038c-0.123344,0.171131 -0.283019,0.283018
|
||||
-0.471698,0.377357c-0.18868,0.094341 -0.266392,0.140215
|
||||
-0.471698,0.188681c-0.183632,0.04335 -0.377358,0 -0.471698,0c-0.09434,0
|
||||
-0.283019,0 -0.377358,0c-0.09434,0 -0.152576,-0.101521
|
||||
-0.18868,-0.188681c-0.051056,-0.12326 -0.140213,-0.17205
|
||||
-0.188679,-0.377357c-0.043349,-0.183632 0,-0.28302 0,-0.471699c0,-0.188679
|
||||
0,-0.283018 0,-0.471697c0,-0.094339 0.080446,-0.205009
|
||||
0.188679,-0.28302c0.171132,-0.123344 0.254098,-0.231962
|
||||
0.377358,-0.283018c0.087158,-0.036102 0.297381,0.072205
|
||||
0.471698,0c0.123261,-0.051056 0.283019,-0.094339 0.377358,-0.094339c0.09434,0
|
||||
0.18868,0 0.283019,0c0.09434,0 0.18868,0.094339 0.18868,0.188679c0,0.094339
|
||||
0.094339,0.094339 0.094339,0.188679c0,0.094339 0,0.188681 0,0.28302c0,0
|
||||
0,0.094339 0,0.094339c0,0.094339 0,0.094339 0,0.188679c0,0 0,0 -0.094339,0c0,0
|
||||
-0.027632,0.066708 -0.094339,0c-0.066708,-0.066708 0.072205,-0.108702
|
||||
0,-0.283018c-0.051057,-0.12326 -0.022136,-0.203043
|
||||
-0.09434,-0.377359c-0.051056,-0.12326 -0.094339,-0.188679
|
||||
-0.094339,-0.377357c0,-0.094341 0,-0.188681 0,-0.28302l0,-0.094339l0,0l0.18868,0"
|
||||
android:strokeColor="#000"
|
||||
android:strokeWidth="1.5"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_star_filled.xml
Normal file
9
app/src/main/res/drawable/ic_star_filled.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="@color/primary_text"
|
||||
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
|
||||
</vector>
|
||||
26
app/src/main/res/drawable/ic_unfollow.xml
Normal file
26
app/src/main/res/drawable/ic_unfollow.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24">
|
||||
|
||||
<group
|
||||
android:name="plus_minus"
|
||||
android:pivotX="5"
|
||||
android:pivotY="11">
|
||||
|
||||
<path
|
||||
android:name="minus"
|
||||
android:fillColor="@color/white"
|
||||
android:pathData="@string/path_follow_minus"/>
|
||||
|
||||
</group>
|
||||
|
||||
<path
|
||||
android:name="person"
|
||||
android:fillColor="@color/white"
|
||||
android:pathData="@string/path_follow_person"/>
|
||||
|
||||
</vector>
|
||||
@ -110,6 +110,22 @@
|
||||
</FrameLayout>
|
||||
</FrameLayout>
|
||||
|
||||
<com.fastaccess.ui.widgets.FontButton
|
||||
android:id="@+id/followBtn"
|
||||
style="@style/Widget.AppCompat.Button.Colored"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/spacing_xs_large"
|
||||
android:drawablePadding="@dimen/spacing_normal"
|
||||
android:drawableStart="@drawable/asl_follow"
|
||||
android:paddingBottom="@dimen/spacing_normal"
|
||||
android:paddingEnd="@dimen/spacing_xs_large"
|
||||
android:paddingStart="@dimen/spacing_xs_large"
|
||||
android:paddingTop="@dimen/spacing_normal"
|
||||
android:text="@string/follow"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/follow"
|
||||
android:title="@string/follow"
|
||||
app:showAsAction="always"/>
|
||||
</menu>
|
||||
6
app/src/main/res/values/paths.xml
Normal file
6
app/src/main/res/values/paths.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="path_follow_person">M15,12C17.21,12 19,10.21 19,8C19,5.79 17.21,4 15,4C12.79,4 11,5.79 11,8C11,10.21 12.79,12 15,12L15,12ZM15,14C12.33,14 7,15.34 7,18L7,20L23,20L23,18C23,15.34 17.67,14 15,14L15,14Z</string>
|
||||
<string name="path_follow_plus">M6,7 L4,7 L4,10 L1,10 L1,12 L4,12 L4,15 L6,15 L6,12 L9,12 L9,10 L6,10 L6,7 Z</string>
|
||||
<string name="path_follow_minus">M6,10 L4,10 L4,10 L1,10 L1,12 L4,12 L4,12 L6,12 L6,12 L9,12 L9,10 L6,10 L6,10 Z</string>
|
||||
</resources>
|
||||
Loading…
x
Reference in New Issue
Block a user