Commit f4e408e6 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :调整登录接口和加入会员充值弹窗
[实现方案] :
parent 908d8119
......@@ -70,6 +70,7 @@
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="EeA5p6EzR014yFavoMobr1VRqQEmOihG" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
......@@ -100,49 +101,49 @@
android:name="org.apache.http.legacy"
android:required="false" />
<!-- &lt;!&ndash; 小米推送 &ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.push.service.XMPushService"-->
<!-- android:enabled="true"-->
<!-- android:process=":pushservice" />-->
<!-- &lt;!&ndash;注:此service必须在3.0.1版本以后(包括3.0.1版本)加入&ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.push.service.XMJobService"-->
<!-- android:enabled="true"-->
<!-- android:exported="false"-->
<!-- android:permission="android.permission.BIND_JOB_SERVICE"-->
<!-- android:process=":pushservice" />-->
<!-- &lt;!&ndash;注:com.xiaomi.xmsf.permission.MIPUSH_RECEIVE这里的包名不能改为app的包名&ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.mipush.sdk.PushMessageHandler"-->
<!-- android:enabled="true"-->
<!-- android:exported="true"-->
<!-- android:permission="com.xiaomi.xmsf.permission.MIPUSH_RECEIVE" />-->
<!-- &lt;!&ndash;注:此service必须在2.2.5版本以后(包括2.2.5版本)加入&ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.mipush.sdk.MessageHandleService"-->
<!-- android:enabled="true" />-->
<!-- <receiver-->
<!-- android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"-->
<!-- android:exported="true">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- <receiver-->
<!-- android:name="com.xiaomi.push.service.receivers.PingReceiver"-->
<!-- android:exported="false"-->
<!-- android:process=":pushservice">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.xiaomi.push.PING_TIMER" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- &lt;!&ndash; 小米推送 &ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.push.service.XMPushService"-->
<!-- android:enabled="true"-->
<!-- android:process=":pushservice" />-->
<!-- &lt;!&ndash;注:此service必须在3.0.1版本以后(包括3.0.1版本)加入&ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.push.service.XMJobService"-->
<!-- android:enabled="true"-->
<!-- android:exported="false"-->
<!-- android:permission="android.permission.BIND_JOB_SERVICE"-->
<!-- android:process=":pushservice" />-->
<!-- &lt;!&ndash;注:com.xiaomi.xmsf.permission.MIPUSH_RECEIVE这里的包名不能改为app的包名&ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.mipush.sdk.PushMessageHandler"-->
<!-- android:enabled="true"-->
<!-- android:exported="true"-->
<!-- android:permission="com.xiaomi.xmsf.permission.MIPUSH_RECEIVE" />-->
<!-- &lt;!&ndash;注:此service必须在2.2.5版本以后(包括2.2.5版本)加入&ndash;&gt;-->
<!-- <service-->
<!-- android:name="com.xiaomi.mipush.sdk.MessageHandleService"-->
<!-- android:enabled="true" />-->
<!-- <receiver-->
<!-- android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"-->
<!-- android:exported="true">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- <receiver-->
<!-- android:name="com.xiaomi.push.service.receivers.PingReceiver"-->
<!-- android:exported="false"-->
<!-- android:process=":pushservice">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.xiaomi.push.PING_TIMER" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- 小米 -->
<receiver android:name=".receiver.MessageReceiver">
<intent-filter>
......@@ -232,6 +233,14 @@
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter>
</receiver>
<!-- &lt;!&ndash; 适配尺寸 &ndash;&gt;-->
<!-- <meta-data-->
<!-- android:name="design_width_in_dp"-->
<!-- android:value="1080" />-->
<!-- <meta-data-->
<!-- android:name="design_height_in_dp"-->
<!-- android:value="1920" />-->
</application>
</manifest>
\ No newline at end of file
......@@ -52,6 +52,7 @@ import com.zxhl.cms.runtimepermission.NicePermissionListener;
import com.zxhl.cms.utils.AdCallback;
import com.zxhl.cms.utils.AdDataSupport;
import com.zxhl.cms.utils.EventUtils;
import com.zxhl.cms.utils.JumpUtils;
import com.zxhl.cms.utils.LogUtils;
import com.zxhl.cms.utils.RxBus;
import com.zxhl.cms.utils.UserDataUtils;
......@@ -130,7 +131,8 @@ public class MainActivity extends BaseActivity implements NavigationBottomView.N
mRestartLoginObservable.observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
deviceLogin();
// deviceLogin();
JumpUtils.loginBeforeJump();
}
}, new Consumer<Throwable>() {
@Override
......
......@@ -119,5 +119,6 @@ dependencies {
//归因
api 'com.appsflyer:af-android-sdk:6.3.2'
api("com.android.installreferrer:installreferrer:2.2")
//适配
api 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1'
}
......@@ -25,6 +25,12 @@ class BecomeVipBannerAdapter :
R.drawable.vip_banner_bj_view,
R.drawable.vip_banner_bj_chat,
)
private var bannerDesc = listOf(
"Video chat with friends",
"Exclusive VIP flag",
"View the album for free",
"Free text chat"
)
constructor(
content: Context?
......@@ -42,6 +48,7 @@ class BecomeVipBannerAdapter :
override fun onBindViewHolder(holder: BecomeVipBannerAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_banner_img.setImageResource(bannerImg[position])
holder.id_banner_desc.text = bannerDesc[position]
}
override fun getItemCount(): Int {
......@@ -52,9 +59,11 @@ class BecomeVipBannerAdapter :
var id_banner_img: ImageView
var id_banner_desc: TextView
constructor(itemView: View) : super(itemView) {
id_banner_img = itemView.findViewById(R.id.id_item_banner_img)
id_banner_desc = itemView.findViewById(R.id.id_item_banner_desc)
}
}
......
package com.zxhl.cms.pay.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.chat.RecordEntity
/**
* @author (wangXuewei)
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class BecomeVipDialogBannerAdapter :
BaseRecyclerAdapter<Any, BecomeVipDialogBannerAdapter.ViewHolder> {
private var mContext: Context? = null
private var bannerBgImg = listOf(
R.drawable.vip_banner_long1,
R.drawable.vip_banner_long1,
R.drawable.vip_banner_long2,
R.drawable.vip_banner_long3,
R.drawable.vip_banner_long4,
)
private var bannerIconImg = listOf(
R.drawable.icon_banner_video,
R.drawable.icon_banner_video,
R.drawable.icon_banner_vip,
R.drawable.icon_banner_view,
R.drawable.icon_banner_chat,
)
private var bannerDesc = listOf(
"Buy a package below to chat with\n a beautiful Girl",
"Video chat with friends",
"Exclusive VIP flag",
"View the album for free",
"Free text chat"
)
constructor(
content: Context?
) : super() {
mContext = content
}
override fun onCreateViewHolder(
holder: ViewGroup,
p1: Int
): BecomeVipDialogBannerAdapter.ViewHolder {
return ViewHolder(
LayoutInflater.from(holder.context)
.inflate(R.layout.item_layout_become_vip_dialog_banner_view, holder, false)
)
}
override fun onBindViewHolder(holder: BecomeVipDialogBannerAdapter.ViewHolder, position: Int) {
holder.banner_bg.setBackgroundResource(bannerBgImg[position])
holder.desc.text = bannerDesc[position]
holder.view_type2.setImageResource(bannerIconImg[position])
if (position == 0) {
holder.view_type1.visibility = View.VISIBLE
holder.view_type2.visibility = View.INVISIBLE
} else {
holder.view_type1.visibility = View.INVISIBLE
holder.view_type2.visibility = View.VISIBLE
}
}
override fun getItemCount(): Int {
return bannerBgImg.size
}
inner class ViewHolder : RecyclerView.ViewHolder {
var banner_bg: RelativeLayout
var view_type1: RelativeLayout
var view_type2: ImageView
var desc: TextView
constructor(itemView: View) : super(itemView) {
banner_bg = itemView.findViewById(R.id.id_rl_item_view)
view_type1 = itemView.findViewById(R.id.id_rl_pay_introduce_type1)
view_type2 = itemView.findViewById(R.id.id_img_pay_introduce_type2)
desc = itemView.findViewById(R.id.id_tv_desc)
}
}
}
\ No newline at end of file
package com.zxhl.cms.pay.view
import android.app.Activity
import android.app.Dialog
import android.util.Log
import android.view.Gravity
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.pay.adapter.BecomeVipBannerAdapter
import com.zxhl.cms.pay.adapter.BecomeVipDialogBannerAdapter
import com.zxhl.cms.widget.CenterDialog
import com.zxhl.cms.widget.RecyclerViewPageChangeListenerHelper
import com.zxhl.cms.widget.UIndicator
import kotlinx.android.synthetic.main.activity_layout_vip_pay.*
import org.greenrobot.eventbus.EventBus
/**
* @author (wangXuewei)
* @datetime 2022-04-16 16:13 GMT+8
* @detail :
*/
object VipPayDialog {
private var mActivity: Activity? = null;
private var mBannerAdapter: BecomeVipDialogBannerAdapter? = null
private var mCallBack: VipPayCallBack? = null
fun setDialogDismissCallback(callback: VipPayCallBack?) {
this.mCallBack = callback
}
interface VipPayCallBack {
fun pageClose();
fun paySuccess();
fun payCancel();
fun payError();
}
fun showVipPayDialog(activity: Activity) {
this.mActivity = activity;
openPayDialog(activity)
}
private var mDialog: Dialog? = null
private fun openPayDialog(act: Activity) {
if (mDialog == null) {
mDialog = Dialog(act!!, R.style.CenterCompatDialogTheme)
}
val mDialogView = CenterDialog.showBottomDialog(
R.layout.dialog_layout_vip_pay,
act,
mDialog!!,
0,
Gravity.CENTER
)
val pay_banner = mDialogView.findViewById<RecyclerView>(R.id.id_rcl_pay_banner)
val banner_indic = mDialogView.findViewById<UIndicator>(R.id.id_banner_indicator)
val btn_continue = mDialogView.findViewById<TextView>(R.id.id_tv_vip_dialog_pay_btn)
banner_indic.setIndicatorCount(5)
mBannerAdapter = BecomeVipDialogBannerAdapter(act)
pay_banner?.layoutManager = LinearLayoutManager(
act, LinearLayoutManager.HORIZONTAL,
false
)
pay_banner?.adapter = mBannerAdapter
val mPagerSnapHelper = PagerSnapHelper()
mPagerSnapHelper.attachToRecyclerView(pay_banner)
pay_banner.addOnScrollListener(
RecyclerViewPageChangeListenerHelper(mPagerSnapHelper,
object : RecyclerViewPageChangeListenerHelper.OnPageChangeListener {
override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
}
override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
}
override fun onPageSelected(position: Int) {
banner_indic.setSelectPos(position)
}
})
)
btn_continue.setOnClickListener {
mDialog?.dismiss()
}
mDialog?.setOnDismissListener {
mDialog = null
this.mActivity = null
mCallBack?.pageClose()
}
mDialog?.setCanceledOnTouchOutside(false)
mDialog?.setCancelable(false)
if (!act.isFinishing) {
mDialog?.show()
return
}
}
}
\ No newline at end of file
......@@ -115,10 +115,8 @@ class FaceBookLoginUtil {
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
// callBack.loginSuccess(lottery)
mLoginCallBack?.onLoginError("net code:$code msg:$errorMsg")
}
})
}
......
package com.zxhl.cms.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
/**
* @author (wangXuewei)
* @datetime 2022-04-15 17:16 GMT+8
* @detail :
*/
public class FlowLayout extends ViewGroup {
public FlowLayout(Context context) {
this(context, null);
}
public FlowLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public FlowLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
private List<List<View>> mLineViews = new ArrayList<List<View>>();
private List<Integer> mLineHeight = new ArrayList<Integer>();
/**
* 测量所有子View大小,确定ViewGroup的宽高
*
* @param widthMeasureSpec
* @param heightMeasureSpec
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//由于onMeasure会执行多次,避免重复的计算控件个数和高度,这里需要进行清空操作
mLineViews.clear();
mLineHeight.clear();
//获取测量的模式和尺寸大小
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec)-getPaddingLeft()-getPaddingRight();
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int heightSize = MeasureSpec.getSize(heightMeasureSpec)+getPaddingTop()+getPaddingBottom();
//记录ViewGroup真实的测量宽高
int viewGroupWidth = 0-getPaddingLeft()-getPaddingRight();
int viewGroupHeight = getPaddingTop()+getPaddingBottom();
if (widthMode == MeasureSpec.EXACTLY && heightMode == MeasureSpec.EXACTLY) {
viewGroupWidth = widthSize;
viewGroupHeight = heightSize;
} else {
//当前所占的宽高
int currentLineWidth = 0;
int currentLineHeight = 0;
//用来存储每一行上的子View
List<View> lineView = new ArrayList<View>();
int childViewsCount = getChildCount();
for (int i = 0; i < childViewsCount; i++) {
View childView = getChildAt(i);
//对子View进行测量
measureChild(childView, widthMeasureSpec, heightMeasureSpec);
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) childView.getLayoutParams();
int childViewWidth = childView.getMeasuredWidth() + marginLayoutParams.leftMargin + marginLayoutParams.rightMargin;
int childViewHeight = childView.getMeasuredHeight() + marginLayoutParams.topMargin + marginLayoutParams.bottomMargin;
if (currentLineWidth + childViewWidth > widthSize) {
//当前行宽+子View+左右外边距>ViewGroup的宽度,换行
viewGroupWidth = Math.max(currentLineWidth, widthSize);
viewGroupHeight += currentLineHeight;
//添加行高
mLineHeight.add(currentLineHeight);
//添加行对象
mLineViews.add(lineView);
//new新的一行
lineView = new ArrayList<View>();
//添加行对象里的子View
lineView.add(childView);
currentLineWidth = childViewWidth;
} else {
//当前行宽+子View+左右外边距<=ViewGroup的宽度,不换行
currentLineWidth += childViewWidth;
currentLineHeight = Math.max(currentLineHeight, childViewHeight);
//添加行对象里的子View
lineView.add(childView);
}
if (i == childViewsCount - 1) {
//最后一个子View的时候
//添加行对象
mLineViews.add(lineView);
viewGroupWidth = Math.max(childViewWidth, viewGroupWidth);
viewGroupHeight += childViewHeight;
//添加行高
mLineHeight.add(currentLineHeight);
}
}
}
setMeasuredDimension(viewGroupWidth, viewGroupHeight);
}
/**
* 设置ViewGroup里子View的具体位置
*
* @param changed
* @param l
* @param t
* @param r
* @param b
*/
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int left = getPaddingLeft();
int top = getPaddingTop();
//一共有几行
int lines = mLineViews.size();
for (int i = 0; i < lines; i++) {
//每行行高
int lineHeight = mLineHeight.get(i);
//行内有几个子View
List<View> viewList = mLineViews.get(i);
int views = viewList.size();
for (int j = 0; j < views; j++) {
View view = viewList.get(j);
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
int vl = left + marginLayoutParams.leftMargin;
int vt = top + marginLayoutParams.topMargin;
int vr = vl + view.getMeasuredWidth();
int vb = vt + view.getMeasuredHeight();
view.layout(vl, vt, vr, vb);
left += view.getMeasuredWidth() + marginLayoutParams.leftMargin + marginLayoutParams.rightMargin;
}
left = getPaddingLeft();
top += lineHeight;
}
}
/**
* 指定ViewGroup的LayoutParams
*
* @param attrs
* @return
*/
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new MarginLayoutParams(getContext(), attrs);
}
}
package com.zxhl.cms.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
/**
* @author (wangXuewei)
* @datetime 2022-04-16 15:37 GMT+8
* @detail :
*/
public class HorizontalAutoBrLayout extends ViewGroup {
/**
* 可使用的最大宽度
*/
private int maxWidth;
public HorizontalAutoBrLayout(Context context) {
super(context);
}
public HorizontalAutoBrLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public HorizontalAutoBrLayout(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
maxWidth = MeasureSpec.getSize(widthMeasureSpec);
/**
* 容器的高度,也就是本布局的高度。初始化赋值为0.
*/
int containorHeight = 0;
/**
* 获取该布局内子组件的个数
*/
int count = getChildCount();
for (int i = 0; i < count; i++) {
View view = getChildAt(i);
/**
* measure(int widthMeasureSpec,int
* heightMeasureSpec)用于设置子组件显示模式.有三个值:
* MeasureSpec.AT_MOST 该组件可以设置自己的大小,但是最大不能超过其父组件的限定
* MeasureSpec.EXACTLY 无论该组件设置大小是多少,都只能按照父组件限制的大小来显示
* MeasureSpec.UNSPECIFIED 该组件不受父组件的限制,可以设置任意大小
*/
view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
// 把每个子组件的高度相加就是该组件要显示的高度。
containorHeight += view.getMeasuredHeight();
}
/**
* onMeasure方法的关键代码,该句设置父容器的大小。
*/
setMeasuredDimension(maxWidth, containorHeight);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// 获取子组件数
int childCount = getChildCount();
// 子组件行数,初始化赋值为1
int row = 1;
// 子组件的左边“坐标”
int left = 0;
// 子组件的右边“坐标”
int right = 0;
// 子组件的顶部“坐标”
int top = 0;
// 子组件的底部“坐标”
int bottom = 0;
// 在父组件中设置的padding属性的值,该值显然也会影响到子组件在屏幕的显示位置
int p = getPaddingLeft();
for (int i = 0; i < childCount; i++) {
View view = getChildAt(i);
// 测量子组件的宽
int width = view.getMeasuredWidth();
// 测量子组件的高
int height = view.getMeasuredHeight();
left = p + right;
right = left + width;
top = p * row + height * (row - 1);
bottom = top + height;
if (right > maxWidth) {
row++;
//每次换行后要将子组件左边“坐标”与右边“坐标”重新初始化
left = 0;
right = 0;
left = p + right;
right = left + width;
top = p * row + height * (row - 1);
bottom = top + height;
}
// 最后按照计算出来的“坐标”将子组件放在父容器内
view.layout(left, top, right, bottom);
}
}
}
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="300dp"
android:layout_height="502dp"
android:layout_centerInParent="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_pay_banner"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.zxhl.cms.widget.UIndicator
android:id="@+id/id_banner_indicator"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_marginTop="200dp"
android:layout_centerHorizontal="true"
app:circle_circle_radius="4dp"
app:normal_color="#66ffffff"
android:layout_marginStart="10dp"
app:orientation="horizontal"
app:selected_color="#ffffffff"
app:spacing="10dp"
app:style="circle_circle" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_pay_price_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/id_rcl_pay_banner"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/id_tv_vip_dialog_pay_btn"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_margin="20dp"
android:background="@drawable/shape_8857ff_bd8aff_bg_r25"
android:gravity="center"
android:text="Continue"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
......@@ -8,9 +8,19 @@
<ImageView
android:id="@+id/id_item_banner_img"
android:layout_width="match_parent"
android:scaleType="fitXY"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/vip_banner_bj_chat"
android:layout_height="wrap_content" />
android:scaleType="fitXY"
android:src="@drawable/vip_banner_bj_chat" />
<TextView
android:id="@+id/id_item_banner_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingTop="50dp"
android:text=""
android:textColor="@color/white"
android:textSize="18sp" />
</FrameLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/id_rl_item_view"
android:background="@drawable/vip_banner_long1"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/id_rl_pay_introduce_type1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_centerHorizontal="true"
android:src="@drawable/icon_photo_dian" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/head_img_photo_boy" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"
android:src="@drawable/icon_shipin_green" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/head_img_photo_girl" />
</LinearLayout>
</RelativeLayout>
<ImageView
android:id="@+id/id_img_pay_introduce_type2"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="60dp"
android:scaleType="centerInside"
android:src="@drawable/icon_banner_video"
android:visibility="gone" />
<TextView
android:id="@+id/id_tv_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_rl_pay_introduce_type1"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="15sp" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Indicator">
<!--未选中的指示器颜色-->
<attr name="normal_color" format="reference|color" />
<!--选中的指示器颜色-->
<attr name="selected_color" format="reference|color" />
<!--指示器每个item之间的间距-->
<attr name="spacing" format="dimension" />
<!--指示器排列方向-->
<attr name="orientation" format="enum">
<enum name="horizontal" value="0" />
<enum name="vertical" value="1" />
</attr>
<!--指示器类型 命名规则:未选中样式_选中样式-->
<attr name="style" format="enum">
<!--都是圆点-->
<enum name="circle_circle" value="0"/>
<!--都是方形-->
<enum name="rect_rect" value="1" />
<!--未选中是圆点,选中是方形-->
<enum name="circle_rect" value="2" />
</attr>
<!--都是圆点指示器半径大小-->
<attr name="circle_circle_radius" format="dimension" />
<!--都是方形指示器长度-->
<attr name="rect_rect_itemWidth" format="dimension" />
<!--都是方形指示器高度-->
<attr name="rect_rect_itemHeight" format="dimension" />
<!--都是方形指示器圆角-->
<attr name="rect_rect_corner" format="dimension" />
<!--circle_rect 模式圆点半径-->
<attr name="circle_rect_radius" format="dimension" />
<!--circle_rect 模式方形宽度-->
<attr name="circle_rect_itemWidth" format="dimension" />
<!--circle_rect 模式方形高度-->
<attr name="circle_rect_itemHeight" format="dimension" />
<!--circle_rect 模式方形圆角-->
<attr name="circle_rect_corner" format="dimension" />
</declare-styleable>
</resources>
\ No newline at end of file
......@@ -42,6 +42,12 @@
<item name="android:windowExitAnimation">@anim/anim_top_out</item>
</style>
<style name="AnimBottom2" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@anim/anim_bottom_enter</item>
<item name="android:windowExitAnimation">@anim/anim_bottom_exit</item>
</style>
<style name="progressbar_loading">
<item name="android:indeterminateDrawable">@anim/anim_progress_loading</item>
</style>
......
......@@ -64,7 +64,6 @@ class LoginBeforeActivity : BaseActivity() {
EventUtils.onEvent("GoogleLoginError", errorMsg)
runOnUiThread {
mLoading?.setResult(false, "login error", 1000)
imLogin()
}
}
})
......@@ -173,24 +172,31 @@ class LoginBeforeActivity : BaseActivity() {
}
private fun imLogin(){
ApiClient.userInfoAPi.deviceLogin().compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<UserInfo>() {
override fun onSuccess(result: UserInfo) {
val token = result.token
SettingPreference.saveToken(token)
UserDataUtils.updateUserInfo(AdCallback { _, _ ->
JumpUtils.activityJump(
RounterBus.getRounter(RounterApi::class.java).getIntentActivityMain()
)
finish()
})
}
override fun onFailure(e: Throwable, code: String, errorMsg: String) {
SettingPreference.saveToken("")
SettingPreference.saveUserInfo(null)
}
})
UserDataUtils.updateUserInfo(AdCallback { _, _ ->
JumpUtils.activityJump(
RounterBus.getRounter(RounterApi::class.java).getIntentActivityMain()
)
finish()
})
// ApiClient.userInfoAPi.deviceLogin().compose(RxSchedulers.observableIO2Main())
// .subscribe(object : BaseObserver<UserInfo>() {
// override fun onSuccess(result: UserInfo) {
// val token = result.token
// SettingPreference.saveToken(token)
// UserDataUtils.updateUserInfo(AdCallback { _, _ ->
// JumpUtils.activityJump(
// RounterBus.getRounter(RounterApi::class.java).getIntentActivityMain()
// )
// finish()
// })
// }
//
// override fun onFailure(e: Throwable, code: String, errorMsg: String) {
// SettingPreference.saveToken("")
// SettingPreference.saveUserInfo(null)
//
// }
// })
}
}
\ No newline at end of file
......@@ -40,26 +40,8 @@ class SplashActivity : BaseActivity(), SplashContract.View {
finish()
return
}
// EventUtils.onEvent("app_start")
EventUtils.onEvent("app_start")
if (SettingPreference.getFirstApp()) {
// if (TextUtils.equals(
// Utils.getChannel(this),
// "toutiao"
// ) || TextUtils.equals(Utils.getChannel(this), "toutiao_h5")
// ) {
//
// mPresenter = SplashPresenter(this@SplashActivity, this@SplashActivity)
// initListener()
// } else {
// CenterDialog.showPrivacyProtocol(this, object : View.OnClickListener {
// override fun onClick(p0: View?) {
// SettingPreference.setFirstApp()
// mPresenter = SplashPresenter(this@SplashActivity, this@SplashActivity)
// initListener()
// }
// })
//
// }
CenterDialog.showPrivacyProtocol(this, object : View.OnClickListener {
override fun onClick(p0: View?) {
SettingPreference.setFirstApp()
......@@ -102,13 +84,9 @@ class SplashActivity : BaseActivity(), SplashContract.View {
if (user == null && TextUtils.isEmpty(token)) {
JumpUtils.loginBeforeJump()
} else {
if (TextUtils.equals(SettingPreference.getUserHasData(), "0")) {
JumpUtils.SettingInfoJump()
} else {
JumpUtils.activityJump(
RounterBus.getRounter(RounterApi::class.java).getIntentActivityMain()
)
}
JumpUtils.activityJump(
RounterBus.getRounter(RounterApi::class.java).getIntentActivityMain()
)
}
finish()
}
......
......@@ -37,8 +37,9 @@ import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
//用户详情页面
/**
* @detail : 国内版用户详情(暂时未使用)
*/
class UserDetailActivity : BaseActivity(), UserDetailContract.View,
ImageWatcher.OnPictureLongPressListener {
private var mPresenter: UserDetailPresenter? = null
......
package com.zxhl.main.page.activity
import android.graphics.Color
import android.view.View
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.box.HomeListEntity
import com.zxhl.cms.pay.view.VipPayDialog
import com.zxhl.cms.utils.OnRecycleItemClickListener
import com.zxhl.cms.utils.Utils
import com.zxhl.main.R
import com.zxhl.main.page.adapter.UserPhotosAdapter
import com.zxhl.main.page.contract.UserDetailsContract
......@@ -64,6 +71,10 @@ class UserDetailsActivity : BaseActivity(), UserDetailsContract.View,
}
id_ll_user_details_call_video -> {
showToast("call video")
VipPayDialog.showVipPayDialog(this)
}
id_ll_user_details_like_btn -> {
showToast("like")
}
}
}
......@@ -76,6 +87,8 @@ class UserDetailsActivity : BaseActivity(), UserDetailsContract.View,
override fun setUserDetails(result: HomeListEntity) {
//Name
id_tv_user_details_name.text = result.nickname
//tag
setPersonalTagUI(listOf("aaaa","cc","bbbbbb","d","eeeee","aaafaa","aaaaag",))
mPhotoAdapter?.clear()
mPhotoAdapter?.appendToList(result.picturesList)
......@@ -87,11 +100,35 @@ class UserDetailsActivity : BaseActivity(), UserDetailsContract.View,
}
override fun followCallBack(boolean: Boolean) {
if (boolean) {
id_img_user_details_like.setImageResource(R.drawable.icon_like_click_user2)
id_tv_user_details_like_num.setTextColor(Color.parseColor("#E838AC"))
} else {
id_img_user_details_like.setImageResource(R.drawable.icon_like_default_user2)
id_tv_user_details_like_num.setTextColor(Color.parseColor("#666666"))
}
}
override fun onItemClick(view: View?, position: Int, data: String?) {
mPhotoAdapter?.setSelectPhoto(position)
id_img_user_details_photo.setLoadImageUrl(data, true)
}
//设置标签UI
private fun setPersonalTagUI(tagList: List<String>) {
id_fl_tag_list_view.removeAllViews()
val lps = RelativeLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)
lps.setMargins(Utils.dip2px(5), Utils.dip2px(5), Utils.dip2px(5), Utils.dip2px(5))
for (tagStr in tagList) {
var tagView = TextView(this)
tagView.text = tagStr
tagView.textSize = 14f
tagView.setTextColor(Color.parseColor("#824FFF"))
tagView.background = resources.getDrawable(R.drawable.shape_eae1ff_r3)
tagView.setPadding(Utils.dip2px(5), Utils.dip2px(2), Utils.dip2px(5), Utils.dip2px(2))
tagView.layoutParams = lps
id_fl_tag_list_view.addView(tagView)
}
}
}
\ No newline at end of file
......@@ -16,13 +16,13 @@
<SurfaceView
android:id="@+id/id_sfv_user_detail_video"
android:layout_width="match_parent"
android:layout_height="320dp"
android:layout_height="360dp"
android:visibility="gone" />
<com.zxhl.cms.widget.RecycleImageView
android:id="@+id/id_img_user_details_photo"
android:layout_width="match_parent"
android:layout_height="320dp" />
android:layout_height="360dp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_user_details_photo_list"
......@@ -145,110 +145,44 @@
android:textColor="@color/color_333333"
android:textSize="14sp" />
<com.zxhl.cms.widget.FlowLayout
<com.zxhl.cms.widget.HorizontalAutoBrLayout
android:id="@+id/id_fl_tag_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/id_tv_personal_tag"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="Introvert"
android:textColor="#824FFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="Extrovert"
android:textColor="#824FFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="Bold"
android:textColor="#824FFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="Hardworking"
android:textColor="#824FFF" />
</com.zxhl.cms.widget.HorizontalAutoBrLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="Deligent"
android:textColor="#824FFF" />
<LinearLayout
android:id="@+id/id_ll_user_details_like_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_img_user_details_photo"
android:layout_alignParentEnd="true"
android:layout_marginTop="15.5dp"
android:layout_marginEnd="10dp"
android:gravity="center"
android:orientation="vertical">
<TextView
<ImageView
android:id="@+id/id_img_user_details_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="Coquetry"
android:textColor="#824FFF" />
android:src="@drawable/icon_like_default_user2" />
<TextView
android:id="@+id/id_tv_user_details_like_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="watch movie"
android:textColor="#824FFF" />
android:layout_marginTop="5dp"
android:text="0"
android:textColor="@color/color_666666"
android:textSize="13sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/shape_eae1ff_r3"
android:paddingLeft="5dp"
android:paddingTop="2.5dp"
android:paddingRight="5dp"
android:paddingBottom="2.5dp"
android:text="adventure"
android:textColor="#824FFF" />
</LinearLayout>
</com.zxhl.cms.widget.FlowLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
......@@ -270,6 +204,7 @@
android:layout_marginRight="20dp"
android:src="@drawable/icon_jubao_yuan" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
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