Commit 11c8adb3 by konghaorui

私聊列表点击条目接口后置 - 待发布

parent 12fece28
...@@ -20,8 +20,8 @@ import java.util.List; ...@@ -20,8 +20,8 @@ import java.util.List;
public final class DemoGlobalConfig implements IConfigModule { public final class DemoGlobalConfig implements IConfigModule {
String APP_DOMAIN = "https://api.github.com/"; String APP_DOMAIN = "https://api.github.com/";
// public static String appEnv = YDLConstants.ENV_AUTO_TEST; // public static String appEnv = YDLConstants.ENV_AUTO_TEST;
// public static String appEnv = YDLConstants.ENV_TEST; public static String appEnv = YDLConstants.ENV_TEST;
public static String appEnv = YDLConstants.ENV_PROD; // public static String appEnv = YDLConstants.ENV_PROD;
@Override @Override
public void injectAppLifecycle(@NotNull Context context, @NotNull List<IAppLifecycles> lifecycles) { public void injectAppLifecycle(@NotNull Context context, @NotNull List<IAppLifecycles> lifecycles) {
......
...@@ -61,6 +61,7 @@ import com.yidianling.im.session.extension.CustomAttachmentOrderStatus; ...@@ -61,6 +61,7 @@ import com.yidianling.im.session.extension.CustomAttachmentOrderStatus;
import com.yidianling.im.session.extension.CustomAttachmentPhoneCallSystemNotice; import com.yidianling.im.session.extension.CustomAttachmentPhoneCallSystemNotice;
import com.yidianling.im.session.extension.CustomRecommendExpertListMsg; import com.yidianling.im.session.extension.CustomRecommendExpertListMsg;
import com.yidianling.im.session.extension.CustomSystemTips; import com.yidianling.im.session.extension.CustomSystemTips;
import com.yidianling.im.ui.page.fragment.bean.ChatItemBean;
import com.yidianling.im.ui.widget.ChatTeamHisDialog; import com.yidianling.im.ui.widget.ChatTeamHisDialog;
import com.yidianling.uikit.business.session.helper.MessageListPanelHelper; import com.yidianling.uikit.business.session.helper.MessageListPanelHelper;
import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler; import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler;
...@@ -85,6 +86,7 @@ import io.reactivex.schedulers.Schedulers; ...@@ -85,6 +86,7 @@ import io.reactivex.schedulers.Schedulers;
*/ */
public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler { public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
private boolean notPrepared;
private String toChatUsername; private String toChatUsername;
private DocInfo docInfo = new DocInfo(); private DocInfo docInfo = new DocInfo();
private Activity mActivity; private Activity mActivity;
...@@ -141,7 +143,7 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler { ...@@ -141,7 +143,7 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
if (expert.commentList != null) { if (expert.commentList != null) {
docInfo.commentList.addAll(expert.commentList); docInfo.commentList.addAll(expert.commentList);
} }
this.notPrepared = false;
} }
public P2PCustomActionHandlerImpl(String toChatUsername, public P2PCustomActionHandlerImpl(String toChatUsername,
...@@ -150,6 +152,17 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler { ...@@ -150,6 +152,17 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
docInfo.toUid = toChatUsername; docInfo.toUid = toChatUsername;
docInfo.name = toName; docInfo.name = toName;
docInfo.cover = head; docInfo.cover = head;
this.notPrepared = false;
}
public P2PCustomActionHandlerImpl(ChatItemBean chatItemBean) {
this.toChatUsername = String.valueOf(chatItemBean.getToUid());
this.userType = chatItemBean.getUtype();
this.notPrepared = true;
docInfo.toUid = String.valueOf(chatItemBean.getToUid());
docInfo.name = chatItemBean.getTitle();
docInfo.cover = chatItemBean.getHead();
} }
//聊天室使用 //聊天室使用
...@@ -223,6 +236,7 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler { ...@@ -223,6 +236,7 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
//发送专家推荐列表自定义消息 //发送专家推荐列表自定义消息
@Override @Override
public void sendRecommendExpertListMessage(String sessionId, ArrayList<RecommendExpertBean> recommendExpertList, int type, boolean showExpertList) { public void sendRecommendExpertListMessage(String sessionId, ArrayList<RecommendExpertBean> recommendExpertList, int type, boolean showExpertList) {
CustomRecommendExpertListMsg customRecommendExpertListMsg = new CustomRecommendExpertListMsg(recommendExpertList, type, showExpertList); CustomRecommendExpertListMsg customRecommendExpertListMsg = new CustomRecommendExpertListMsg(recommendExpertList, type, showExpertList);
IMMessage message = MessageBuilder.createCustomMessage(sessionId, SessionTypeEnum.P2P, customRecommendExpertListMsg); IMMessage message = MessageBuilder.createCustomMessage(sessionId, SessionTypeEnum.P2P, customRecommendExpertListMsg);
message.setStatus(MsgStatusEnum.success); message.setStatus(MsgStatusEnum.success);
...@@ -492,6 +506,11 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler { ...@@ -492,6 +506,11 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
return docInfo == null ? new DocInfo() : docInfo; return docInfo == null ? new DocInfo() : docInfo;
} }
@Override
public Boolean isNotPrepare() {
return notPrepared;
}
@Override @Override
public boolean deleteMessage(IMMessage message) { public boolean deleteMessage(IMMessage message) {
......
...@@ -9,6 +9,7 @@ import android.widget.TextView; ...@@ -9,6 +9,7 @@ import android.widget.TextView;
import com.netease.nimlib.sdk.msg.attachment.MsgAttachment; import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
import com.ydl.ydl_image.module.GlideApp; import com.ydl.ydl_image.module.GlideApp;
import com.ydl.ydlcommon.utils.AnimUtils;
import com.yidianling.im.R; import com.yidianling.im.R;
import com.yidianling.im.bean.DoctorAssistantRespDtoBean; import com.yidianling.im.bean.DoctorAssistantRespDtoBean;
import com.yidianling.im.helper.IMUtil; import com.yidianling.im.helper.IMUtil;
...@@ -38,6 +39,7 @@ public class MsgViewHolderRecommendExpertList extends MsgViewHolderBase { ...@@ -38,6 +39,7 @@ public class MsgViewHolderRecommendExpertList extends MsgViewHolderBase {
private LinearLayout recommendLlScroll; private LinearLayout recommendLlScroll;
private TextView tv_outline_left; private TextView tv_outline_left;
private TextView tv_outline_right; private TextView tv_outline_right;
private LinearLayout ll_recommend_expert;
private HorizontalScrollView recommend_ll_scroll_view; private HorizontalScrollView recommend_ll_scroll_view;
private TextView recommend_ll_scroll_view_top_text; private TextView recommend_ll_scroll_view_top_text;
...@@ -53,6 +55,7 @@ public class MsgViewHolderRecommendExpertList extends MsgViewHolderBase { ...@@ -53,6 +55,7 @@ public class MsgViewHolderRecommendExpertList extends MsgViewHolderBase {
@Override @Override
protected void inflateContentView() { protected void inflateContentView() {
recommend_ll_scroll_view = view.findViewById(R.id.recommend_ll_scroll_view); recommend_ll_scroll_view = view.findViewById(R.id.recommend_ll_scroll_view);
ll_recommend_expert = view.findViewById(R.id.ll_recommend_expert);
recommend_ll_scroll_view_top_text = view.findViewById(R.id.recommend_ll_scroll_view_top_text); recommend_ll_scroll_view_top_text = view.findViewById(R.id.recommend_ll_scroll_view_top_text);
recommendLlScroll = view.findViewById(R.id.recommend_ll_scroll); recommendLlScroll = view.findViewById(R.id.recommend_ll_scroll);
tv_outline_left = view.findViewById(R.id.tv_outline_left); tv_outline_left = view.findViewById(R.id.tv_outline_left);
...@@ -146,6 +149,7 @@ public class MsgViewHolderRecommendExpertList extends MsgViewHolderBase { ...@@ -146,6 +149,7 @@ public class MsgViewHolderRecommendExpertList extends MsgViewHolderBase {
} }
hideHead(); hideHead();
hideItemBg(); hideItemBg();
AnimUtils.Companion.slideToUp(ll_recommend_expert);
} }
@Override @Override
......
...@@ -15,14 +15,14 @@ import com.ydl.ydlcommon.data.http.RxUtils ...@@ -15,14 +15,14 @@ import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.utils.log.LogHelper import com.ydl.ydlcommon.utils.log.LogHelper
import com.ydl.ydlcommon.utils.remind.ToastHelper import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.ydl.ydlcommon.view.ListNoCancelDialog import com.ydl.ydlcommon.view.ListNoCancelDialog
import com.yidianling.im.api.param.RmHistoryParam
import com.yidianling.im.api.param.RmTalkParam
import com.yidianling.im.api.param.TopMessageParam
import com.yidianling.im.bridge.P2PCustomActionHandlerImpl import com.yidianling.im.bridge.P2PCustomActionHandlerImpl
import com.yidianling.im.event.UpdateTabUnreadNumEvent import com.yidianling.im.event.UpdateTabUnreadNumEvent
import com.yidianling.im.helper.IMUtil import com.yidianling.im.helper.IMChatUtil
import com.yidianling.im.helper.MsgReceiveHelper import com.yidianling.im.helper.MsgReceiveHelper
import com.yidianling.im.http.ImHttpImpl import com.yidianling.im.http.ImHttpImpl
import com.yidianling.im.api.param.RmHistoryParam
import com.yidianling.im.api.param.RmTalkParam
import com.yidianling.im.api.param.TopMessageParam
import com.yidianling.im.session.SessionHelper import com.yidianling.im.session.SessionHelper
import com.yidianling.im.ui.page.fragment.bean.ChatItemBean import com.yidianling.im.ui.page.fragment.bean.ChatItemBean
import com.yidianling.im.ui.page.fragment.view.ChatItemView import com.yidianling.im.ui.page.fragment.view.ChatItemView
...@@ -62,7 +62,8 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea ...@@ -62,7 +62,8 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea
SessionHelper.startP2PSession(context, -1, "4108805", null, SessionHelper.startP2PSession(context, -1, "4108805", null,
P2PCustomActionHandlerImpl("4108805", "课程小助手-壹壹", "4108805")) P2PCustomActionHandlerImpl("4108805", "课程小助手-壹壹", "4108805"))
}else { }else {
IMUtil.startChat(context as AppCompatActivity, mList[position].toUid.toString(), 0, 0, null, 0, true) // IMUtil.startChat(context as AppCompatActivity, mList[position].toUid.toString(), 0, 0, null, 0, true)
IMChatUtil.startChat(context as AppCompatActivity, mList[position])
} }
} }
......
...@@ -8,7 +8,7 @@ class ChatItemBean( ...@@ -8,7 +8,7 @@ class ChatItemBean(
var unReadNum: Int = 0, var unReadNum: Int = 0,
var chat_type: Int = 1,//1私聊 2群聊 var chat_type: Int = 1,//1私聊 2群聊
var content: String = "", var content: String = "",
var doctor_id: Int = 0,//专家id var doctorId: Int = 0,//专家id
var ds: Int = 0, //倾诉业务状态 var ds: Int = 0, //倾诉业务状态
var head: String = "", var head: String = "",
var is_read: Int = 0,//是否已读:1未读;2已读 var is_read: Int = 0,//是否已读:1未读;2已读
......
...@@ -11,9 +11,6 @@ import android.widget.ImageView; ...@@ -11,9 +11,6 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import com.ydl.ydlcommon.data.http.RxUtils;
import com.yidianling.common.tools.LogUtil;
import com.yidianling.common.tools.ToastUtil;
import com.yidianling.im.R; import com.yidianling.im.R;
import com.yidianling.nimbase.api.model.session.SessionCustomization; import com.yidianling.nimbase.api.model.session.SessionCustomization;
import com.yidianling.nimbase.business.preference.UserPreferences; import com.yidianling.nimbase.business.preference.UserPreferences;
...@@ -23,16 +20,10 @@ import com.yidianling.nimbase.common.util.sys.ScreenUtil; ...@@ -23,16 +20,10 @@ import com.yidianling.nimbase.common.util.sys.ScreenUtil;
import com.yidianling.uikit.business.session.fragment.YDLMessageFragment; import com.yidianling.uikit.business.session.fragment.YDLMessageFragment;
import com.yidianling.uikit.custom.bridge.ActionHandlerStorage; import com.yidianling.uikit.custom.bridge.ActionHandlerStorage;
import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler; import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler;
import com.yidianling.uikit.custom.http.ServiceImpl;
import com.yidianling.uikit.custom.widget.TitleBarBottom; import com.yidianling.uikit.custom.widget.TitleBarBottom;
import java.net.URLEncoder;
import java.util.List; import java.util.List;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
/** /**
* Created by zhoujianghua on 2015/9/10. * Created by zhoujianghua on 2015/9/10.
*/ */
...@@ -126,132 +117,15 @@ public abstract class YDLBaseMessageActivity extends UI { ...@@ -126,132 +117,15 @@ public abstract class YDLBaseMessageActivity extends UI {
if (ActionHandlerStorage.getL(sessionId) != null) { if (ActionHandlerStorage.getL(sessionId) != null) {
ActionHandlerStorage.getL(sessionId).setmActivity(this); ActionHandlerStorage.getL(sessionId).setmActivity(this);
} }
if (!UserPreferences.isEarPhoneModeEnable()) { if (!UserPreferences.isEarPhoneModeEnable()) {
tb.setTitleRightDraw(null); tb.setTitleRightDraw(null);
} else { } else {
tb.setTitleRightDraw(getResources().getDrawable(R.drawable.im_erduoxiaolv)); tb.setTitleRightDraw(getResources().getDrawable(R.drawable.im_erduoxiaolv));
} }
IP2PCustomActionHandler actionHandler = ActionHandlerStorage.getL(sessionId);
//获取私聊对方在线状态
if (null != actionHandler) {
IP2PCustomActionHandler.DocInfo docInfo = actionHandler.getInfo();
if (null != docInfo && ("14".equals(docInfo.toUid) || "4108805".equals(docInfo.toUid))) {
//小壹客服 不显示是否在线
tb.setmMinTitleVisiable(View.GONE);
} else {
if (ActionHandlerStorage.getL(sessionId).getUserType() == 2) {
// 专家
// 调取接口获取专家状态
Disposable dis = ServiceImpl.Companion.getInstance()
.getDoctorChatStatus(Long.parseLong(ActionHandlerStorage.getL(sessionId).getInfo().toUid))
.compose(RxUtils.applySchedulers())
.subscribe(chatStatusBean -> {
if (ActionHandlerStorage.getL(sessionId) != null) {
int status = chatStatusBean.data.getStatus();
ActionHandlerStorage.getL(sessionId).setDoctorStatus(status);
ActionHandlerStorage.getL(sessionId).setDoctorBusyNum(chatStatusBean.data.getBusyTotal());
//1.在线,2.离线,3.忙碌 4咨询中, 5倾述中 6咨询前准备
if (status == 2) {
//离线
tb.setMinTitleText("离线");
tb.setMinTitleColor(getResources().getColor(R.color.platform_color_666666));
tb.setMinTitleDrawable(getResources().getDrawable(R.drawable.im_background_chat_top_status_off_line));
} else if (status == 4 || status == 5) {
//服务中
tb.setMinTitleText("服务中");
tb.setMinTitleColor(getResources().getColor(R.color.platform_color_666666));
tb.setMinTitleDrawable(getResources().getDrawable(R.drawable.im_background_chat_top_status_online_server));
} else {
//在线 1,3,6..
tb.setMinTitleText("在线");
tb.setMinTitleColor(getResources().getColor(R.color.platform_color_666666));
tb.setMinTitleDrawable(getResources().getDrawable(R.drawable.im_background_chat_top_status_online));
}
initSystemMessage(chatStatusBean.data.getPromptRule(), status);
}
}, throwable -> {
LogUtil.i("getDoctorChatStatus throwable:"+throwable);
});
} else if (ActionHandlerStorage.getL(sessionId).getUserType() == 3) {
// 助理
// 调取接口获取助理状态
ServiceImpl.Companion.getInstance().getAssistantChatStatus(Long.parseLong(ActionHandlerStorage.getL(sessionId).getInfo().toUid))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(res -> {
if (ActionHandlerStorage.getL(sessionId) != null) {
if (res.data == 1) {
//在线
tb.setMinTitleText("在线");
tb.setMinTitleColor(getResources().getColor(R.color.platform_color_666666));
tb.setMinTitleDrawable(getResources().getDrawable(R.drawable.im_background_chat_top_status_online));
} else {
//离线
tb.setMinTitleText("离线");
tb.setMinTitleColor(getResources().getColor(R.color.platform_color_666666));
tb.setMinTitleDrawable(getResources().getDrawable(R.drawable.im_background_chat_top_status_off_line));
}
}
}, throwable -> {
});
} else {
tb.setmMinTitleVisiable(View.GONE);
}
}
}
if (customization != null) { if (customization != null) {
addRightCustomViewOnActionBar(this, customization.buttons); addRightCustomViewOnActionBar(this, customization.buttons);
} }
} }
// promptRule 判断是否推荐专家 4,5直接不走文本提示和推荐逻辑,1,3不走推荐逻辑
//初始化 根据专家在线状态来发送提示消息或者推荐消息
private void initSystemMessage(int promptRule, int status) {
if (!(promptRule == 4 || promptRule == 5)) {
boolean showExpertList = !(promptRule == 1 || promptRule == 3);
if (ActionHandlerStorage.getL(sessionId).getUserType() == 2 && status == 2) {
//当该专家离线时
sendRecommendExpertListMessage(1, showExpertList);
} else if (ActionHandlerStorage.getL(sessionId).getUserType() == 2 && status >= 3) {
//当该专家忙碌时
sendRecommendExpertListMessage(2, showExpertList);
}
}
}
/**
* 发送推荐专家列表
*/
@SuppressLint("CheckResult")
public void sendRecommendExpertListMessage(int type, boolean showExpertList) {
// 调取接口获取推荐专家列表
ServiceImpl.Companion.getInstance().getRecommendExpertList(
Long.parseLong(ActionHandlerStorage.getL(sessionId).getInfo().toUid),
URLEncoder.encode(ActionHandlerStorage.getL(sessionId).getInfo().tag1),
3)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(res -> {
//发送推荐专家列表消息
if (ActionHandlerStorage.getL(sessionId) != null) {
ActionHandlerStorage.getL(sessionId).sendRecommendExpertListMessage(sessionId, res.data, type, showExpertList);
}
}, throwable -> {
ToastUtil.toastShort(throwable.toString());
});
}
// 添加action bar的右侧按钮及响应事件 // 添加action bar的右侧按钮及响应事件
private void addRightCustomViewOnActionBar(Activity activity, List<SessionCustomization.OptionsButton> buttons) { private void addRightCustomViewOnActionBar(Activity activity, List<SessionCustomization.OptionsButton> buttons) {
if (buttons == null || buttons.size() == 0) { if (buttons == null || buttons.size() == 0) {
......
...@@ -124,6 +124,7 @@ public class MessageListPanelEx { ...@@ -124,6 +124,7 @@ public class MessageListPanelEx {
//onPause时语音消息是否停止播放 //onPause时语音消息是否停止播放
public static boolean audioIsStop = true; public static boolean audioIsStop = true;
public LinearLayoutManager linearLayoutManager;
public MessageListPanelEx(Container container, View rootView, boolean recordOnly, boolean remote) { public MessageListPanelEx(Container container, View rootView, boolean recordOnly, boolean remote) {
this(container, rootView, null, recordOnly, remote); this(container, rootView, null, recordOnly, remote);
...@@ -186,7 +187,8 @@ public class MessageListPanelEx { ...@@ -186,7 +187,8 @@ public class MessageListPanelEx {
// RecyclerView // RecyclerView
messageListView = rootView.findViewById(R.id.messageListView); messageListView = rootView.findViewById(R.id.messageListView);
messageListView.setLayoutManager(new LinearLayoutManager(container.activity)); linearLayoutManager = new LinearLayoutManager(container.activity);
messageListView.setLayoutManager(linearLayoutManager);
messageListView.requestDisallowInterceptTouchEvent(true); messageListView.requestDisallowInterceptTouchEvent(true);
messageListView.addOnScrollListener(new RecyclerView.OnScrollListener() { messageListView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override @Override
......
...@@ -19,6 +19,8 @@ public interface IP2PCustomActionHandler { ...@@ -19,6 +19,8 @@ public interface IP2PCustomActionHandler {
DocInfo getInfo(); DocInfo getInfo();
Boolean isNotPrepare();
boolean deleteMessage(IMMessage message); //需要筛选的消息 boolean deleteMessage(IMMessage message); //需要筛选的消息
void setDoctorStatus(int status); //更新专家登录状态 void setDoctorStatus(int status); //更新专家登录状态
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:id="@+id/ll_recommend_expert"
android:gravity="center_horizontal"> android:gravity="center_horizontal">
<LinearLayout <LinearLayout
......
...@@ -75,6 +75,7 @@ ...@@ -75,6 +75,7 @@
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:hint="隐私保密,安心咨询"
android:layout_weight="1" android:layout_weight="1"
android:autoLink="all" android:autoLink="all"
android:background="#ffffff" android:background="#ffffff"
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<gradient <gradient
android:angle="180" android:angle="180"
android:startColor="@color/user_main_theme_66" android:startColor="@color/platform_main_gradient_start_color_un"
android:endColor="@color/user_main_theme_66"/> android:endColor="@color/platform_main_gradient_end_color_un"/>
</shape> </shape>
\ No newline at end of file
package com.ydl.ydlcommon.utils package com.ydl.ydlcommon.utils
import android.view.View import android.view.View
import android.view.animation.AccelerateInterpolator
import android.view.animation.Animation import android.view.animation.Animation
import android.view.animation.TranslateAnimation import android.view.animation.TranslateAnimation
/** /**
* @author yuanWai * @author yuanWai
* @描述: * @描述:
...@@ -13,10 +15,12 @@ import android.view.animation.TranslateAnimation ...@@ -13,10 +15,12 @@ import android.view.animation.TranslateAnimation
*/ */
class AnimUtils { class AnimUtils {
companion object { companion object {
fun slideToUp(view : View){ fun slideToUp(view: View) {
val slide = TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, val slide = TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
1.0f, Animation.RELATIVE_TO_SELF, 0.0f) 1.0f, Animation.RELATIVE_TO_SELF, 0.0f
)
slide.duration = 400 slide.duration = 400
slide.fillAfter = true slide.fillAfter = true
slide.isFillEnabled = true slide.isFillEnabled = true
...@@ -35,5 +39,18 @@ class AnimUtils { ...@@ -35,5 +39,18 @@ class AnimUtils {
} }
}) })
} }
fun slideToDown(view: View?) {
val animation = TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0F, Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0F
)
animation.duration = 400
animation.repeatMode = Animation.REVERSE
animation.interpolator = AccelerateInterpolator()
animation.fillAfter = true
view?.startAnimation(animation)
}
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment