diff --git a/app/build.gradle b/app/build.gradle index 63fc83ddd..0492e0397 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -287,8 +287,6 @@ dependencies { //wheelView implementation 'com.contrarywind:wheelview:4.1.0' - implementation 'com.facebook.android:facebook-login:latest.release' - } channel { diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java index 47abeb312..21fb231bd 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/MessageView.java @@ -296,9 +296,9 @@ public class MessageView extends FrameLayout { sysIconHeight = Utils.dip2px(context, 14); smallFace = Utils.dip2px(context, 22); bigFace = Utils.dip2px(context, 30); - //經驗等級圖片後臺已經更換尺寸了,公屏同步下,尺寸是26:20 - expLevelHeight = Utils.dip2px(context, 20); - expLevelWidth = expLevelHeight * 26 / 20;//expLevelHeight * 114 / 45 + //經驗等級圖片後臺已經更換尺寸了,公屏同步下,尺寸是36:18 + expLevelHeight = Utils.dip2px(context, 18); + expLevelWidth = expLevelHeight * 36 / 18;//expLevelHeight * 114 / 45 giftLength = Utils.dip2px(context, 35); // 內容區域 layoutManger = new LinearLayoutManager(context, RecyclerView.VERTICAL, false); diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt index 041ec6fd2..2635d4771 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt @@ -72,7 +72,8 @@ class RoomEffectBoxView @JvmOverloads constructor( private val mCarEffectList: MutableList by lazy { ArrayList() } //頂部飄屏總展示時間 - private val SHOW_TIME = 4000 + private val SHOW_TIME = 4500 + private val CLOSE_TIME = 5000 //頂部飄屏周期 private val PERIOD = 1000 @@ -345,9 +346,15 @@ class RoomEffectBoxView @JvmOverloads constructor( binding.flBoxNotify.addView(textView) textView.startAnimation(animationBox) binding.flBoxNotify.postDelayed( - { binding.flBoxNotify.removeView(textView) }, + { + animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close) + textView.startAnimation(animationBox) + }, SHOW_TIME.toLong() ) + binding.flBoxNotify.postDelayed({ + binding.flBoxNotify.removeView(textView) + }, CLOSE_TIME.toLong()) } /** diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt index cb0d06f7e..8168d1012 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectView.kt @@ -77,7 +77,8 @@ class RoomEffectView @JvmOverloads constructor( private val mCarEffectList: MutableList by lazy { ArrayList() } //頂部飄屏總展示時間 - private val SHOW_TIME = 4000 + private val SHOW_TIME = 4500 + private val CLOSE_TIME = 5000 //頂部飄屏周期 private val PERIOD = 1000 @@ -790,11 +791,15 @@ class RoomEffectView @JvmOverloads constructor( textView.startAnimation(animationPlay) binding.flPlayNotify.postDelayed( { - binding.flPlayNotify.removeView(textView) - isPlayAnim = false + animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close) + textView.startAnimation(animationPlay) }, SHOW_TIME.toLong() ) + binding.flPlayNotify.postDelayed({ + binding.flPlayNotify.removeView(textView) + isPlayAnim = false + }, CLOSE_TIME.toLong()) } private fun showBoxNotifyBySVGA(roomPlayBean: RoomPlayBean) { diff --git a/app/src/main/java/com/yizhuan/erban/decoration/viewmodel/DecorationViewModel.kt b/app/src/main/java/com/yizhuan/erban/decoration/viewmodel/DecorationViewModel.kt index f5e7a0202..045299a5e 100644 --- a/app/src/main/java/com/yizhuan/erban/decoration/viewmodel/DecorationViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/decoration/viewmodel/DecorationViewModel.kt @@ -40,10 +40,6 @@ class DecorationViewModel : BaseViewModel() { block = { _decorationInfoListLiveData.value = ListResult.success(DecorationModel.getDecorationInfoList(dressType), 1) - }, - onError = { - it.message.toast() - _decorationInfoListLiveData.value = ListResult.failed(1) } ) } @@ -54,7 +50,7 @@ class DecorationViewModel : BaseViewModel() { block = { DecorationModel.buyDecoration(dressType, dressId) ResUtil.getString(R.string.decoration_viewmodel_decorationviewmodel_01).toast() - }, + } ) } diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java index c0e7f3e58..6c216c25a 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java @@ -10,8 +10,6 @@ import android.text.method.LinkMovementMethod; import android.text.style.ForegroundColorSpan; import android.view.KeyEvent; import android.view.View; -import android.webkit.CookieManager; -import android.webkit.CookieSyncManager; import android.widget.CheckBox; import android.widget.TextView; @@ -23,12 +21,12 @@ import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.GraphRequest; -import com.facebook.GraphResponse; import com.facebook.Profile; import com.facebook.login.LoginManager; import com.facebook.login.LoginResult; import com.google.firebase.analytics.FirebaseAnalytics; import com.netease.nim.uikit.StatusBarUtil; +import com.netease.nim.uikit.common.util.log.LogUtil; import com.tongdaxing.erban.upgrade.AppUpgradeHelper; import com.trello.rxlifecycle3.android.ActivityEvent; import com.yizhuan.erban.MainActivity; @@ -49,12 +47,14 @@ import com.yizhuan.xchat_android_core.auth.event.LoginReportEvent; import com.yizhuan.xchat_android_library.common.SpConstants; import com.yizhuan.xchat_android_library.common.util.SPUtils; import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil; +import com.yizhuan.xchat_android_library.utils.DeviceUtils; +import com.yizhuan.xchat_android_library.utils.ResUtil; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; +import com.yizhuan.xchat_android_library.utils.constant.PackageNameConstants; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import org.json.JSONObject; import java.util.HashMap; import java.util.List; @@ -65,6 +65,7 @@ import io.reactivex.disposables.Disposable; public class LoginActivity extends BaseActivity implements View.OnClickListener { private static final String NEED_CHECKED_PROTOCOL = "need_checked_protocol"; + private static final String TAG = "LoginActivity"; protected CheckBox tvProtocol; private TextView tvProtocolHint; @@ -93,22 +94,17 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback() { @Override public void onSuccess(LoginResult loginResult) { - SingleToastUtil.showToast("成功"); getFbLoginInfo(loginResult.getAccessToken()); } @Override public void onCancel() { - SingleToastUtil.showToast("cancel"); - CookieSyncManager.createInstance(LoginActivity.this); - CookieManager cookieManager = CookieManager.getInstance(); - cookieManager.removeAllCookie(); - CookieSyncManager.getInstance().sync(); + LogUtil.i(TAG, "Meta login canceled"); } @Override public void onError(FacebookException error) { - SingleToastUtil.showToast("error"); + LogUtil.e(TAG, "Meta login failed error:" + error.getMessage()); } }); } @@ -117,22 +113,31 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener * 获取Facebook个人信息 */ public void getFbLoginInfo(AccessToken accessToken) { - GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { - @Override - public void onCompleted(JSONObject object, GraphResponse response) { - if (object != null) { - String id = object.optString("id"); - String name = object.optString("name"); - String gender = object.optString("gender"); //性别 - String email = object.optString("email"); - //获取用户头像 - JSONObject object_pic = object.optJSONObject("picture"); - JSONObject object_data = object_pic.optJSONObject("data"); - String photo = object_data.optString("url"); - //获取地域信息 - String locale = object.optString("locale"); //zh_CN 代表中文简体 -// getP().doLoginByOauth(id, name, photo, "2"); - } + GraphRequest request = GraphRequest.newMeRequest(accessToken, (object, response) -> { + if (object != null) { + AuthModel.get().facebookLogin(object) + .compose(bindUntilEvent(ActivityEvent.DESTROY)) + .subscribe(new SingleObserver() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onSuccess(String result) { + reportLoginResult(IReportConstants.ONE, IReportConstants.ONE, ""); + HashMap map = new HashMap<>(2); + map.put(FirebaseAnalytics.Param.METHOD, getString(R.string.login_facebook)); + ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map); + ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN); + } + + @Override + public void onError(Throwable e) { + reportLoginResult(IReportConstants.ONE, IReportConstants.ZERO, e.getMessage()); + dealWithLoginError(e); + } + }); } }); @@ -246,42 +251,20 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener switch (v.getId()) { case R.id.cs_facebook: + //是否安装客户端 + if (!DeviceUtils.isAppInstalled(this, PackageNameConstants.FACEBOOK_NAME)) { + SingleToastUtil.showToast(ResUtil.getString(com.yizhuan.xchat_android_core.R.string.xchat_android_core_auth_authmodel_03)); + return; + } + reportLoginType(IReportConstants.ONE); //判断当前token,如果不为空,则已经获取过权限,否则读取权限走registerCallback回调 AccessToken accessToken = AccessToken.getCurrentAccessToken(); Profile profile = Profile.getCurrentProfile(); if (accessToken == null || accessToken.isExpired() || profile == null) { - LoginManager.getInstance().logInWithReadPermissions(this, List.of("public_profile, email, user_birthday, user_friends")); + LoginManager.getInstance().logInWithReadPermissions(this, List.of("public_profile")); } else { getFbLoginInfo(accessToken); } - -// reportLoginType(IReportConstants.ONE); -// getDialogManager().showProgressDialog(this); -// AuthModel.get().facebookLogin() -// .compose(bindUntilEvent(ActivityEvent.DESTROY)) -// .subscribe(new SingleObserver() { -// @Override -// public void onSubscribe(Disposable d) { -// -// } -// -// @Override -// public void onSuccess(String result) { -// reportLoginResult(IReportConstants.ONE, IReportConstants.ONE, ""); -// HashMap map = new HashMap<>(2); -// map.put(FirebaseAnalytics.Param.METHOD, getString(R.string.login_facebook)); -// ReportManager.get().reportEvent(FirebaseAnalytics.Event.LOGIN, map); -// ReportManager.get().reportAdjustEvent(IReportConstants.ADJUST_LOGIN); -// getDialogManager().dismissDialog(); -// } -// -// @Override -// public void onError(Throwable e) { -// reportLoginResult(IReportConstants.ONE, IReportConstants.ZERO, e.getMessage()); -// getDialogManager().dismissDialog(); -// dealWithLoginError(e); -// } -// }); break; case R.id.cs_line: reportLoginType(IReportConstants.TWO); @@ -418,6 +401,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener @Override protected void onDestroy() { super.onDestroy(); + LoginManager.getInstance().unregisterCallback(callbackManager); EventBus.getDefault().unregister(this); } diff --git a/app/src/main/res/anim/anim_box_notify.xml b/app/src/main/res/anim/anim_box_notify.xml index 64c3bce25..c3aab643f 100644 --- a/app/src/main/res/anim/anim_box_notify.xml +++ b/app/src/main/res/anim/anim_box_notify.xml @@ -1,6 +1,11 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/anim_box_notify_close.xml b/app/src/main/res/anim/anim_box_notify_close.xml new file mode 100644 index 000000000..211608f6e --- /dev/null +++ b/app/src/main/res/anim/anim_box_notify_close.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_user_info.xml b/app/src/main/res/layout/activity_user_info.xml index a59bfea36..bacd0e89d 100644 --- a/app/src/main/res/layout/activity_user_info.xml +++ b/app/src/main/res/layout/activity_user_info.xml @@ -263,8 +263,8 @@ android:id="@+id/iv_user_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:layout_marginEnd="@dimen/dp_3" android:adjustViewBounds="true" + android:layout_marginEnd="1dp" android:visibility="visible" tools:src="@mipmap/ic_user_level" /> @@ -272,12 +272,11 @@ android:id="@+id/iv_user_charm" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:layout_marginEnd="3dp" android:adjustViewBounds="true" + android:layout_marginEnd="1dp" android:visibility="visible" tools:src="@drawable/ic_user_charm_level" /> - diff --git a/app/src/main/res/layout/dialog_user_info.xml b/app/src/main/res/layout/dialog_user_info.xml index 787c45898..ce15a5e25 100644 --- a/app/src/main/res/layout/dialog_user_info.xml +++ b/app/src/main/res/layout/dialog_user_info.xml @@ -179,7 +179,7 @@ android:id="@+id/iv_user_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:layout_marginEnd="@dimen/dp_5" + android:layout_marginEnd="@dimen/dp_2" android:adjustViewBounds="true" android:visibility="gone" tools:src="@mipmap/ic_user_level" diff --git a/app/src/main/res/layout/family_attention_item.xml b/app/src/main/res/layout/family_attention_item.xml index ca88603ee..c6d1f0e9b 100644 --- a/app/src/main/res/layout/family_attention_item.xml +++ b/app/src/main/res/layout/family_attention_item.xml @@ -60,20 +60,18 @@ diff --git a/app/src/main/res/layout/family_fans_list_item.xml b/app/src/main/res/layout/family_fans_list_item.xml index c116eaa3a..ecb420ada 100644 --- a/app/src/main/res/layout/family_fans_list_item.xml +++ b/app/src/main/res/layout/family_fans_list_item.xml @@ -60,20 +60,18 @@ diff --git a/app/src/main/res/layout/family_list_item_friend.xml b/app/src/main/res/layout/family_list_item_friend.xml index 31d2727ea..cd4ef692e 100644 --- a/app/src/main/res/layout/family_list_item_friend.xml +++ b/app/src/main/res/layout/family_list_item_friend.xml @@ -58,20 +58,18 @@ diff --git a/app/src/main/res/layout/fans_list_item.xml b/app/src/main/res/layout/fans_list_item.xml index 8827af474..820e446c5 100644 --- a/app/src/main/res/layout/fans_list_item.xml +++ b/app/src/main/res/layout/fans_list_item.xml @@ -108,20 +108,20 @@ diff --git a/app/src/main/res/layout/fans_list_item_new.xml b/app/src/main/res/layout/fans_list_item_new.xml index dc76e7d71..6d4b7103b 100644 --- a/app/src/main/res/layout/fans_list_item_new.xml +++ b/app/src/main/res/layout/fans_list_item_new.xml @@ -80,20 +80,18 @@ diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index e21331628..d198d3d62 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -196,18 +196,18 @@ @@ -215,13 +215,15 @@ android:id="@+id/tv_101" visible="@{userInfo.userInfoSkillVo.liveTag}" android:layout_width="wrap_content" - android:layout_height="15dp" + android:layout_height="@dimen/dp_20" android:layout_marginEnd="5dp" android:background="@drawable/tag_101" + android:adjustViewBounds="true" android:gravity="center" android:textColor="#ffffffff" android:textSize="10sp" android:visibility="gone" + tools:visibility="visible" tools:ignore="SmallSp" /> diff --git a/app/src/main/res/layout/item_home_hall_left.xml b/app/src/main/res/layout/item_home_hall_left.xml index a56d168f7..bdda47ea7 100644 --- a/app/src/main/res/layout/item_home_hall_left.xml +++ b/app/src/main/res/layout/item_home_hall_left.xml @@ -103,9 +103,7 @@ android:id="@+id/iv_user_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:minWidth="@dimen/dp_25" - android:layout_marginEnd="2dp" - android:scaleType="fitXY" + android:adjustViewBounds="true" android:visibility="gone" tools:src="@mipmap/ic_user_level" tools:visibility="visible" /> @@ -114,9 +112,7 @@ android:id="@+id/iv_charm_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:minWidth="@dimen/dp_25" - android:layout_marginEnd="2dp" - android:scaleType="fitXY" + android:adjustViewBounds="true" android:visibility="gone" tools:src="@mipmap/ic_user_level" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/item_home_hall_right.xml b/app/src/main/res/layout/item_home_hall_right.xml index f87ffd5f4..041342297 100644 --- a/app/src/main/res/layout/item_home_hall_right.xml +++ b/app/src/main/res/layout/item_home_hall_right.xml @@ -97,9 +97,7 @@ android:id="@+id/iv_user_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:minWidth="@dimen/dp_25" - android:layout_marginEnd="2dp" - android:scaleType="fitXY" + android:adjustViewBounds="true" android:visibility="gone" tools:src="@mipmap/ic_user_level" tools:visibility="visible" /> @@ -108,9 +106,7 @@ android:id="@+id/iv_charm_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:minWidth="@dimen/dp_25" - android:layout_marginEnd="2dp" - android:scaleType="fitXY" + android:adjustViewBounds="true" android:visibility="gone" tools:src="@mipmap/ic_user_level" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/item_mic_queue_list.xml b/app/src/main/res/layout/item_mic_queue_list.xml index c95670d54..40150754f 100644 --- a/app/src/main/res/layout/item_mic_queue_list.xml +++ b/app/src/main/res/layout/item_mic_queue_list.xml @@ -106,20 +106,18 @@ diff --git a/app/src/main/res/layout/item_my_chat_bubble.xml b/app/src/main/res/layout/item_my_chat_bubble.xml index 71cc1f6c0..b1ea440d0 100644 --- a/app/src/main/res/layout/item_my_chat_bubble.xml +++ b/app/src/main/res/layout/item_my_chat_bubble.xml @@ -60,13 +60,12 @@ app:layout_constraintTop_toTopOf="parent" tools:src="@drawable/ic_mark_limit" /> - diff --git a/app/src/main/res/layout/list_item_friend.xml b/app/src/main/res/layout/list_item_friend.xml index 79e0ee482..db46d6e5e 100644 --- a/app/src/main/res/layout/list_item_friend.xml +++ b/app/src/main/res/layout/list_item_friend.xml @@ -105,20 +105,19 @@ diff --git a/app/src/main/res/layout/list_item_friend_new.xml b/app/src/main/res/layout/list_item_friend_new.xml index 511d3e03b..fae5de167 100644 --- a/app/src/main/res/layout/list_item_friend_new.xml +++ b/app/src/main/res/layout/list_item_friend_new.xml @@ -72,7 +72,6 @@ android:id="@+id/iv_noble_level" android:layout_width="17dp" android:layout_height="17dp" - android:layout_marginEnd="2dp" android:visibility="gone" app:layout_flexShrink="0" tools:src="@mipmap/ic_user_level_king" @@ -80,10 +79,9 @@ + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 64f133d69..fef375f23 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4311,7 +4311,7 @@ 小澀瑤小澀瑤小澀瑤 什麽鬼 所屬公所屬公會昵稱會昵稱 - 女神沒有大長腿啊啊啊 + 女神沒有大長腿啊啊啊阿薩大廈健康的殺害的 設置為超管 忘忘忘忘憂閣憂閣憂閣憂閣 專屬銘牌 diff --git a/app/src/module_community/res/layout/layout_dy_nick_detail.xml b/app/src/module_community/res/layout/layout_dy_nick_detail.xml index 97651e774..c8c2118bc 100644 --- a/app/src/module_community/res/layout/layout_dy_nick_detail.xml +++ b/app/src/module_community/res/layout/layout_dy_nick_detail.xml @@ -80,7 +80,6 @@ android:layout_height="@dimen/dp_20" android:layout_marginTop="@dimen/dp_5" android:adjustViewBounds="true" - android:scaleType="fitXY" android:src="@mipmap/ic_user_official_13dp" app:layout_constraintStart_toStartOf="@id/iv_vip_icon" app:layout_constraintTop_toBottomOf="@id/tv_nick" /> @@ -89,9 +88,8 @@ android:id="@+id/iv_user_charm_level" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" - android:layout_marginStart="5dp" + android:layout_marginStart="2dp" android:adjustViewBounds="true" - android:scaleType="fitXY" android:src="@mipmap/ic_user_new_13dp" app:layout_constraintBottom_toBottomOf="@id/iv_user_wealth_level" app:layout_constraintStart_toEndOf="@id/iv_user_wealth_level" @@ -101,7 +99,7 @@ android:id="@+id/ll_official_mask" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/dp_5" + android:layout_marginStart="@dimen/dp_2" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="@id/iv_user_wealth_level" app:layout_constraintStart_toEndOf="@id/iv_user_charm_level" @@ -135,7 +133,7 @@ android:includeFontPadding="false" android:singleLine="true" android:textColor="@color/white" - android:textSize="11dp" + android:textSize="@dimen/sp_11" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/iv_official_mask" app:layout_constraintStart_toStartOf="@id/iv_official_mask" @@ -143,6 +141,7 @@ tools:text="@string/layout_layout_dy_nick_detail_02" /> + @@ -85,12 +85,13 @@ + diff --git a/app/src/module_mini_world/res/layout/item_mini_world_member_list.xml b/app/src/module_mini_world/res/layout/item_mini_world_member_list.xml index a8515ee00..80552f3ba 100644 --- a/app/src/module_mini_world/res/layout/item_mini_world_member_list.xml +++ b/app/src/module_mini_world/res/layout/item_mini_world_member_list.xml @@ -91,19 +91,19 @@ diff --git a/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_fans_list.xml b/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_fans_list.xml index 880553f39..b72a4db1c 100644 --- a/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_fans_list.xml +++ b/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_fans_list.xml @@ -81,20 +81,18 @@ diff --git a/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_friend_list.xml b/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_friend_list.xml index be2257e05..3503396e4 100644 --- a/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_friend_list.xml +++ b/app/src/module_public_chat_hall/res/layout/item_public_chat_hall_friend_list.xml @@ -81,20 +81,18 @@ diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java index b2dcbbce9..9fe6482da 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java @@ -56,11 +56,11 @@ import com.yizhuan.xchat_android_library.utils.constant.PackageNameConstants; import com.yizhuan.xchat_android_library.utils.json.JsonUtils; import org.greenrobot.eventbus.EventBus; +import org.json.JSONObject; import java.util.HashMap; import java.util.List; -import cn.sharesdk.facebook.Facebook; import cn.sharesdk.framework.Platform; import cn.sharesdk.framework.PlatformActionListener; import cn.sharesdk.framework.ShareSDK; @@ -220,13 +220,13 @@ public class AuthModel extends BaseModel implements IAuthModel { return Single.error(new Throwable(""));//没有账号信息 } return requestTicket().flatMap(ticketResult -> { - if (!ticketResult.isSuccess()) { - return Single.error(new Throwable(ticketResult.getMessage())); - } - ticketInfo = ticketResult.getData(); - DemoCache.saveTicketInfo(ticketInfo); - return Single.just(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_01)); - }) + if (!ticketResult.isSuccess()) { + return Single.error(new Throwable(ticketResult.getMessage())); + } + ticketInfo = ticketResult.getData(); + DemoCache.saveTicketInfo(ticketInfo); + return Single.just(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_01)); + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .flatMap((Function>) s -> { @@ -253,62 +253,62 @@ public class AuthModel extends BaseModel implements IAuthModel { @Override public Single login(String phoneAreaCode, String account, String password, String code, String yiDunToken, String shuMeiDeviceId) { return Single.create((SingleOnSubscribe) emitter -> { - //获取登录信息 - try { - LoginResult loginResult = api.login( - phoneAreaCode, - DESUtils.DESAndBase64(account), - VersionUtil.getLocalName(BasicConfig.INSTANCE.getAppContext()), - "erban-client", - DESUtils.DESAndBase64(account), - DESAndBase64(password), - "password", - "uyzjdhds", - code, - yiDunToken, - shuMeiDeviceId - ).blockingGet(); - if (!loginResult.isSuccess()) { - if (loginResult.getCode() == CODE_BAN_ACCOUNT || loginResult.getCode() == CODE_BAN_DEVICE) { - emitter.onError(new BanAccountException(loginResult.getReason(), loginResult.getDate())); - } else if (loginResult.getCode() == CODE_ACCOUNT_CANCEL) { - emitter.onError(new AccountCancelException(loginResult.getMessage(), loginResult.getErbanNo(), loginResult.getCancelDate())); - } else if (loginResult.getCode() == SUPER_CODE_SHOW_CODE) { - //是否是超管 - if (loginResult.getSuperCodeVerify() == 1) { - emitter.onError(new IsSuperAdminException(loginResult.getMessage())); - } else { - emitter.onError(new Throwable(loginResult.getMessage())); + //获取登录信息 + try { + LoginResult loginResult = api.login( + phoneAreaCode, + DESUtils.DESAndBase64(account), + VersionUtil.getLocalName(BasicConfig.INSTANCE.getAppContext()), + "erban-client", + DESUtils.DESAndBase64(account), + DESAndBase64(password), + "password", + "uyzjdhds", + code, + yiDunToken, + shuMeiDeviceId + ).blockingGet(); + if (!loginResult.isSuccess()) { + if (loginResult.getCode() == CODE_BAN_ACCOUNT || loginResult.getCode() == CODE_BAN_DEVICE) { + emitter.onError(new BanAccountException(loginResult.getReason(), loginResult.getDate())); + } else if (loginResult.getCode() == CODE_ACCOUNT_CANCEL) { + emitter.onError(new AccountCancelException(loginResult.getMessage(), loginResult.getErbanNo(), loginResult.getCancelDate())); + } else if (loginResult.getCode() == SUPER_CODE_SHOW_CODE) { + //是否是超管 + if (loginResult.getSuperCodeVerify() == 1) { + emitter.onError(new IsSuperAdminException(loginResult.getMessage())); + } else { + emitter.onError(new Throwable(loginResult.getMessage())); + } + } else { + emitter.onError(new Throwable(loginResult.getMessage())); + } + return; } - } else { - emitter.onError(new Throwable(loginResult.getMessage())); + currentAccountInfo = loginResult.getData(); + DemoCache.saveCurrentAccountInfo(currentAccountInfo); + //成功获取到uid后,就通知首页刷新审核中状态的数据 + EventBus.getDefault().post(new GetCurrentUidEvent(true)); + } catch (Exception e) { + emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); + return; } - return; - } - currentAccountInfo = loginResult.getData(); - DemoCache.saveCurrentAccountInfo(currentAccountInfo); - //成功获取到uid后,就通知首页刷新审核中状态的数据 - EventBus.getDefault().post(new GetCurrentUidEvent(true)); - } catch (Exception e) { - emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); - return; - } - //获取tick - try { - TicketResult ticketResult = requestTicket().blockingGet(); - if (!ticketResult.isSuccess()) { - emitter.onError(new Throwable(ticketResult.getMessage())); - return; - } - ticketInfo = ticketResult.getData(); - DemoCache.saveTicketInfo(ticketInfo); + //获取tick + try { + TicketResult ticketResult = requestTicket().blockingGet(); + if (!ticketResult.isSuccess()) { + emitter.onError(new Throwable(ticketResult.getMessage())); + return; + } + ticketInfo = ticketResult.getData(); + DemoCache.saveTicketInfo(ticketInfo); - } catch (Exception e) { - emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); - return; - } - emitter.onSuccess(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_02)); - }) + } catch (Exception e) { + emitter.onError(new Throwable(OldHttpErrorHandleUtil.handle(e))); + return; + } + emitter.onSuccess(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_02)); + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .flatMap(new Function>() { @@ -332,51 +332,26 @@ public class AuthModel extends BaseModel implements IAuthModel { * @return */ @Override - public Single facebookLogin() { - return Single.create((SingleOnSubscribe) e -> { - facebook = ShareSDK.getPlatform(Facebook.NAME); - //是否安装客户端 - if (!DeviceUtils.isAppInstalled(getContext(), PackageNameConstants.FACEBOOK_NAME)) { - e.onError(new Throwable(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_03))); - return; - } - if (facebook.isAuthValid()) { - facebook.removeAccount(true); - } - facebook.setPlatformActionListener(new PlatformActionListener() { - @Override - public void onComplete(final Platform platform, int i, HashMap hashMap) { - if (i == Platform.ACTION_USER_INFOR) { - String openid = platform.getDb().getUserId(); - String unionid = platform.getDb().get("unionid"); - Logger.i(platform.getDb().getUserGender() + "----openid" + openid + "unionid" + unionid + platform.getDb().getUserIcon()); - thirdUserInfo = new ThirdUserInfo(); - thirdUserInfo.setType(ThirdUserInfo.TYPE_FACEBOOK); - thirdUserInfo.setPlatform("Facebook"); - thirdUserInfo.setUserName(platform.getDb().getUserName()); - thirdUserInfo.setUserGender(platform.getDb().getUserGender()); - thirdUserInfo.setUserIcon(platform.getDb().getUserIcon()); - e.onSuccess(platform); - } - } + public Single facebookLogin(JSONObject object) { + return Single.create((SingleOnSubscribe) e -> { + String name = object.optString("name"); + String gender = object.optString("gender"); //性别 + //获取用户头像 + JSONObject object_pic = object.optJSONObject("picture"); + JSONObject object_data = object_pic.optJSONObject("data"); + String photo = object_data.optString("url"); - @Override - public void onError(Platform platform, int i, Throwable throwable) { - e.onError(new Throwable(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_04) + i)); - throwable.printStackTrace(); - } - - @Override - public void onCancel(Platform platform, int i) { - e.onError(new Throwable(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_05))); - } - }); - facebook.SSOSetting(false); - facebook.showUser(null); + thirdUserInfo = new ThirdUserInfo(); + thirdUserInfo.setType(ThirdUserInfo.TYPE_FACEBOOK); + thirdUserInfo.setPlatform("Facebook"); + thirdUserInfo.setUserName(name); + thirdUserInfo.setUserGender(gender); + thirdUserInfo.setUserIcon(photo); + e.onSuccess(object); }) .flatMap(platform -> { - String openid = platform.getDb().getUserId(); - String unionid = platform.getDb().getUserId(); + String openid = platform.optString("id"); + String unionid = platform.optString("id"); String avatar = thirdUserInfo.getUserIcon(); if (avatar != null && avatar.equals("null")) { avatar = null; diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java index 4362398cf..69b0c166b 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java @@ -1,8 +1,11 @@ package com.yizhuan.xchat_android_core.auth; +import com.facebook.CallbackManager; import com.yizhuan.xchat_android_core.auth.entity.ThirdUserInfo; import com.yizhuan.xchat_android_core.base.IModel; +import org.json.JSONObject; + import io.reactivex.Single; public interface IAuthModel extends IModel { @@ -57,7 +60,7 @@ public interface IAuthModel extends IModel { */ Single login(String phoneAreaCode, String account, String password, String code, String yiDunToken, String shuMeiDeviceId); - Single facebookLogin(); + Single facebookLogin(JSONObject object); Single lineLogin(); diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 6ff9da7a4..9fb95e13a 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -201,7 +201,7 @@ IM登錄成功 IM登錄成功 失敗錯誤碼: - IM登錄失敗錯誤碼: + 網絡異常,請切換網絡后重試: IM登錄失敗異常信息: 不存在對應賬號 未知錯誤! diff --git a/library/build.gradle b/library/build.gradle index 77536e5cc..6324d7017 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -141,6 +141,8 @@ dependencies { api 'com.umeng.sdk:utdid:1.1.5.3' + api 'com.facebook.android:facebook-login:latest.release' + } repositories { mavenCentral()