Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile
Commits
33ec5d6a
Commit
33ec5d6a
authored
Aug 27, 2022
by
feihuaduo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mc用户登录优化
parent
e620a94c
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
245 additions
and
122 deletions
+245
-122
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/MyCard.java
...e/src/main/java/cn/garymb/ygomobile/ui/mycard/MyCard.java
+82
-71
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/MycardFragment.java
...in/java/cn/garymb/ygomobile/ui/mycard/MycardFragment.java
+35
-25
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/bean/McUser.java
.../main/java/cn/garymb/ygomobile/ui/mycard/bean/McUser.java
+104
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/MycardChatFragment.java
...garymb/ygomobile/ui/mycard/mcchat/MycardChatFragment.java
+1
-1
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/adapter/ChatAdapter.java
...arymb/ygomobile/ui/mycard/mcchat/adapter/ChatAdapter.java
+1
-1
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/management/ServiceManagement.java
...mobile/ui/mycard/mcchat/management/ServiceManagement.java
+5
-7
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/management/UserManagement.java
...ygomobile/ui/mycard/mcchat/management/UserManagement.java
+11
-14
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/util/TaxiConnectionListener.java
...omobile/ui/mycard/mcchat/util/TaxiConnectionListener.java
+6
-2
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
+0
-1
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/MyCard.java
View file @
33ec5d6a
...
@@ -2,6 +2,9 @@ package cn.garymb.ygomobile.ui.mycard;
...
@@ -2,6 +2,9 @@ package cn.garymb.ygomobile.ui.mycard;
import
static
junit
.
framework
.
Assert
.
assertEquals
;
import
static
junit
.
framework
.
Assert
.
assertEquals
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
ARG_DECK
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_YGO_TYPE
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Context
;
...
@@ -13,6 +16,8 @@ import android.util.Base64;
...
@@ -13,6 +16,8 @@ import android.util.Base64;
import
android.util.Log
;
import
android.util.Log
;
import
android.webkit.JavascriptInterface
;
import
android.webkit.JavascriptInterface
;
import
com.app.hubert.guide.util.LogUtil
;
import
com.google.gson.Gson
;
import
com.tencent.smtt.sdk.WebView
;
import
com.tencent.smtt.sdk.WebView
;
import
org.json.JSONArray
;
import
org.json.JSONArray
;
...
@@ -23,6 +28,7 @@ import java.io.File;
...
@@ -23,6 +28,7 @@ import java.io.File;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.net.URL
;
import
java.nio.charset.Charset
;
import
java.nio.charset.Charset
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -30,9 +36,12 @@ import java.util.List;
...
@@ -30,9 +36,12 @@ import java.util.List;
import
cn.garymb.ygodata.YGOGameOptions
;
import
cn.garymb.ygodata.YGOGameOptions
;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.YGOStarter
;
import
cn.garymb.ygomobile.YGOStarter
;
import
cn.garymb.ygomobile.bean.events.DeckFile
;
import
cn.garymb.ygomobile.bean.events.DeckFile
;
import
cn.garymb.ygomobile.lite.BuildConfig
;
import
cn.garymb.ygomobile.lite.BuildConfig
;
import
cn.garymb.ygomobile.ui.mycard.bean.McUser
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.UserManagement
;
import
cn.garymb.ygomobile.ui.plus.DefWebViewClient
;
import
cn.garymb.ygomobile.ui.plus.DefWebViewClient
;
import
cn.garymb.ygomobile.utils.DeckUtil
;
import
cn.garymb.ygomobile.utils.DeckUtil
;
import
cn.garymb.ygomobile.utils.JsonUtil
;
import
cn.garymb.ygomobile.utils.JsonUtil
;
...
@@ -95,8 +104,35 @@ public class MyCard {
...
@@ -95,8 +104,35 @@ public class MyCard {
public
static
final
String
ARG_PORT
=
"port"
;
public
static
final
String
ARG_PORT
=
"port"
;
public
static
final
String
PACKAGE_NAME_EZ
=
"com.ourygo.ez"
;
public
static
final
String
PACKAGE_NAME_EZ
=
"com.ourygo.ez"
;
private
static
final
Charset
UTF_8
=
Charset
.
forName
(
"UTF-8"
);
private
static
final
Charset
UTF_8
=
Charset
.
forName
(
"UTF-8"
);
private
final
DefWebViewClient
mDefWebViewClient
;
private
final
DefWebViewClient
mDefWebViewClient
=
new
DefWebViewClient
()
{
public
final
User
mUser
=
new
User
();
@Override
public
boolean
shouldOverrideUrlLoading
(
WebView
view
,
String
url
)
{
// if (url.startsWith(return_sso_url)) {
//
//
// String sso = Uri.parse(url).getQueryParameter("sso");
// String data = new String(Base64.decode(Uri.parse(url).getQueryParameter("sso"), Base64.NO_WRAP), UTF_8);
// Uri info = new Uri.Builder().encodedQuery(data).build();
// mUser.external_id = Integer.parseInt(info.getQueryParameter("external_id"));
// mUser.username = info.getQueryParameter("username");
// mUser.name = info.getQueryParameter("name");
// mUser.email = info.getQueryParameter("email");
// mUser.avatar_url = info.getQueryParameter("avatar_url");
// mUser.admin = info.getBooleanQueryParameter("admin", false);
// mUser.moderator = info.getBooleanQueryParameter("moderator", false);
// lastModified.edit().putString("user_external_id", mUser.external_id + "").apply();
// lastModified.edit().putString("user_name", mUser.username).apply();
// //UserManagement.setUserName(mUser.username);
// //UserManagement.setUserPassword(mUser.external_id+"");
// mUser.login = true;
// if (getMyCardListener() != null) {
// getMyCardListener().onLogin(mUser.name, mUser.avatar_url, null);
// }
// return false;
// }
return
super
.
shouldOverrideUrlLoading
(
view
,
url
);
}
};
private
final
SharedPreferences
lastModified
;
private
final
SharedPreferences
lastModified
;
private
MyCardListener
mMyCardListener
;
private
MyCardListener
mMyCardListener
;
private
Activity
mContext
;
private
Activity
mContext
;
...
@@ -104,33 +140,15 @@ public class MyCard {
...
@@ -104,33 +140,15 @@ public class MyCard {
public
MyCard
(
Activity
context
)
{
public
MyCard
(
Activity
context
)
{
mContext
=
context
;
mContext
=
context
;
lastModified
=
context
.
getSharedPreferences
(
"lastModified"
,
Context
.
MODE_PRIVATE
);
lastModified
=
context
.
getSharedPreferences
(
"lastModified"
,
Context
.
MODE_PRIVATE
);
mDefWebViewClient
=
new
DefWebViewClient
()
{
@Override
public
boolean
shouldOverrideUrlLoading
(
WebView
view
,
String
url
)
{
if
(
url
.
startsWith
(
return_sso_url
))
{
String
sso
=
Uri
.
parse
(
url
).
getQueryParameter
(
"sso"
);
String
data
=
new
String
(
Base64
.
decode
(
Uri
.
parse
(
url
).
getQueryParameter
(
"sso"
),
Base64
.
NO_WRAP
),
UTF_8
);
Uri
info
=
new
Uri
.
Builder
().
encodedQuery
(
data
).
build
();
mUser
.
external_id
=
Integer
.
parseInt
(
info
.
getQueryParameter
(
"external_id"
));
mUser
.
username
=
info
.
getQueryParameter
(
"username"
);
mUser
.
name
=
info
.
getQueryParameter
(
"name"
);
mUser
.
email
=
info
.
getQueryParameter
(
"email"
);
mUser
.
avatar_url
=
info
.
getQueryParameter
(
"avatar_url"
);
mUser
.
admin
=
info
.
getBooleanQueryParameter
(
"admin"
,
false
);
mUser
.
moderator
=
info
.
getBooleanQueryParameter
(
"moderator"
,
false
);
lastModified
.
edit
().
putString
(
"user_external_id"
,
mUser
.
external_id
+
""
).
apply
();
lastModified
.
edit
().
putString
(
"user_name"
,
mUser
.
username
).
apply
();
//UserManagement.setUserName(mUser.username);
//UserManagement.setUserPassword(mUser.external_id+"");
mUser
.
login
=
true
;
if
(
getMyCardListener
()
!=
null
)
{
getMyCardListener
().
onLogin
(
mUser
.
name
,
mUser
.
avatar_url
,
null
);
}
return
false
;
}
return
super
.
shouldOverrideUrlLoading
(
view
,
url
);
}
}
};
public
static
String
getMCLogoutUrl
(){
String
home
=
"return_sso_url="
+
Uri
.
encode
(
mHomeUrl
);
String
base64
=
Base64
.
encodeToString
(
home
.
getBytes
(),
Base64
.
NO_WRAP
);
Uri
.
Builder
uri
=
Uri
.
parse
(
URL_MC_LOGOUT
)
.
buildUpon
();
uri
.
appendQueryParameter
(
"sso"
,
base64
);
return
uri
.
build
().
toString
();
}
}
//获取mc新闻列表
//获取mc新闻列表
...
@@ -201,17 +219,12 @@ public class MyCard {
...
@@ -201,17 +219,12 @@ public class MyCard {
mMyCardListener
=
myCardListener
;
mMyCardListener
=
myCardListener
;
webView
.
setWebViewClient
(
getWebViewClient
());
webView
.
setWebViewClient
(
getWebViewClient
());
webView
.
addJavascriptInterface
(
new
MyCard
.
Ygopro
(
mContext
,
myCardListener
),
"ygopro"
);
webView
.
addJavascriptInterface
(
new
MyCard
.
Ygopro
(
mContext
,
myCardListener
),
"ygopro"
);
String
name
=
lastModified
.
getString
(
"user_name"
,
null
);
String
headurl
=
lastModified
.
getString
(
"user_avatar_url"
,
null
);
if
(
mMyCardListener
!=
null
)
{
if
(!
TextUtils
.
isEmpty
(
name
))
{
mMyCardListener
.
onLogin
(
name
,
headurl
,
null
);
}
}
}
}
public
interface
MyCardListener
{
public
interface
MyCardListener
{
void
onLogin
(
String
name
,
String
icon
,
String
statu
);
void
onLogin
(
McUser
mcUser
,
String
exception
);
void
onUpdate
(
String
name
,
String
icon
,
String
statu
);
void
backHome
();
void
backHome
();
...
@@ -219,33 +232,12 @@ public class MyCard {
...
@@ -219,33 +232,12 @@ public class MyCard {
void
onHome
();
void
onHome
();
}
/**
*
public
static
class
User
{
* @param message 退出登录的提示,web端传
int
external_id
;
*/
String
username
;
void
onLogout
(
String
message
);
String
name
;
String
email
;
String
avatar_url
;
boolean
admin
;
boolean
moderator
;
boolean
login
;
public
User
()
{
}
public
String
getJID
()
{
return
username
+
"@mycard.moe"
;
}
public
String
getPassword
()
{
return
String
.
valueOf
(
external_id
);
}
public
String
getConference
()
{
return
"ygopro_china_north@conference.mycard.moe"
;
}
}
}
public
class
Ygopro
{
public
class
Ygopro
{
...
@@ -375,17 +367,36 @@ public class MyCard {
...
@@ -375,17 +367,36 @@ public class MyCard {
return
getWrappedLastModified
(
path
,
file
.
lastModified
());
return
getWrappedLastModified
(
path
,
file
.
lastModified
());
}
}
@JavascriptInterface
public
void
loginUser
(
String
userInfo
,
String
exception
){
McUser
mcUser
=
null
;
if
(
TextUtils
.
isEmpty
(
exception
))
{
mcUser
=
new
Gson
().
fromJson
(
userInfo
,
McUser
.
class
);
UserManagement
.
getDx
().
setMcUser
(
mcUser
);
}
if
(
mListener
!=
null
)
mListener
.
onLogin
(
mcUser
,
exception
);
}
@JavascriptInterface
@JavascriptInterface
public
void
updateUser
(
String
name
,
String
headurl
,
String
status
)
{
public
void
updateUser
(
String
name
,
String
headurl
,
String
status
)
{
McUser
mcUser
=
UserManagement
.
getDx
().
getMcUser
();
if
(
mcUser
==
null
)
mcUser
=
new
McUser
();
mcUser
.
setUsername
(
name
);
mcUser
.
setAvatar_url
(
headurl
);
mcUser
.
setEmail
(
status
);
UserManagement
.
getDx
().
setMcUser
(
mcUser
);
if
(
mListener
!=
null
)
{
if
(
mListener
!=
null
)
{
mUser
.
name
=
name
;
mListener
.
onUpdate
(
name
,
headurl
,
status
);
mUser
.
avatar_url
=
headurl
;
}
mUser
.
login
=
true
;
}
lastModified
.
edit
()
.
putString
(
"user_name"
,
name
)
@JavascriptInterface
.
putString
(
"user_avatar_url"
,
headurl
)
public
void
logoutUser
(
String
message
){
.
apply
();
UserManagement
.
getDx
().
logout
();
mListener
.
onLogin
(
name
,
headurl
,
status
);
if
(
mListener
!=
null
)
{
mListener
.
onLogout
(
message
);
}
}
}
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/MycardFragment.java
View file @
33ec5d6a
...
@@ -30,6 +30,7 @@ import android.widget.Toast;
...
@@ -30,6 +30,7 @@ import android.widget.Toast;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
com.app.hubert.guide.util.LogUtil
;
import
com.ourygo.assistant.util.Util
;
import
com.ourygo.assistant.util.Util
;
import
com.tencent.smtt.sdk.ValueCallback
;
import
com.tencent.smtt.sdk.ValueCallback
;
import
com.tencent.smtt.sdk.WebChromeClient
;
import
com.tencent.smtt.sdk.WebChromeClient
;
...
@@ -46,6 +47,7 @@ import cn.garymb.ygomobile.lite.BuildConfig;
...
@@ -46,6 +47,7 @@ import cn.garymb.ygomobile.lite.BuildConfig;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.ui.home.HomeActivity
;
import
cn.garymb.ygomobile.ui.home.HomeActivity
;
import
cn.garymb.ygomobile.ui.mycard.base.OnJoinChatListener
;
import
cn.garymb.ygomobile.ui.mycard.base.OnJoinChatListener
;
import
cn.garymb.ygomobile.ui.mycard.bean.McUser
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatListener
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatListener
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatMessage
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatMessage
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.ServiceManagement
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.ServiceManagement
;
...
@@ -58,7 +60,6 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
...
@@ -58,7 +60,6 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
private
static
final
int
TYPE_MC_LOGIN
=
0
;
private
static
final
int
TYPE_MC_LOGIN
=
0
;
private
static
final
int
TYPE_MC_LOGIN_FAILED
=
1
;
private
static
final
int
TYPE_MC_LOGIN_FAILED
=
1
;
private
HomeActivity
homeActivity
;
private
HomeActivity
homeActivity
;
private
SharedPreferences
lastModified
;
long
exitLasttime
=
0
;
long
exitLasttime
=
0
;
//头像昵称账号
//头像昵称账号
private
LinearLayout
ll_head_login
;
private
LinearLayout
ll_head_login
;
...
@@ -81,12 +82,12 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
...
@@ -81,12 +82,12 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
public
void
handleMessage
(
Message
msg
)
{
public
void
handleMessage
(
Message
msg
)
{
super
.
handleMessage
(
msg
);
super
.
handleMessage
(
msg
);
if
(
msg
.
what
==
TYPE_MC_LOGIN
)
{
if
(
msg
.
what
==
TYPE_MC_LOGIN
)
{
String
[]
ss
=
(
String
[]
)
msg
.
obj
;
McUser
mcUser
=
(
McUser
)
msg
.
obj
;
if
(!
TextUtils
.
isEmpty
(
ss
[
1
]
))
{
if
(!
TextUtils
.
isEmpty
(
mcUser
.
getAvatar_url
()
))
{
GlideCompat
.
with
(
getActivity
()).
load
(
Uri
.
parse
(
ss
[
1
]
)).
into
(
mHeadView
);
//刷新头像图片
GlideCompat
.
with
(
getActivity
()).
load
(
mcUser
.
getAvatar_url
(
)).
into
(
mHeadView
);
//刷新头像图片
}
}
mNameView
.
setText
(
ss
[
0
]
);
//刷新用户名
mNameView
.
setText
(
mcUser
.
getUsername
()
);
//刷新用户名
mStatusView
.
setText
(
ss
[
2
]
);
//刷新账号信息
mStatusView
.
setText
(
mcUser
.
getEmail
()
);
//刷新账号信息
serviceManagement
.
start
();
serviceManagement
.
start
();
}
}
if
(
msg
.
what
==
TYPE_MC_LOGIN_FAILED
)
{
if
(
msg
.
what
==
TYPE_MC_LOGIN_FAILED
)
{
...
@@ -103,7 +104,6 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
...
@@ -103,7 +104,6 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
public
View
onCreateView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreateView
(
inflater
,
container
,
savedInstanceState
);
super
.
onCreateView
(
inflater
,
container
,
savedInstanceState
);
homeActivity
=
(
HomeActivity
)
getActivity
();
homeActivity
=
(
HomeActivity
)
getActivity
();
lastModified
=
App
.
get
().
getSharedPreferences
(
"lastModified"
,
Context
.
MODE_PRIVATE
);
View
view
;
View
view
;
view
=
inflater
.
inflate
(
R
.
layout
.
fragment_mycard
,
container
,
false
);
view
=
inflater
.
inflate
(
R
.
layout
.
fragment_mycard
,
container
,
false
);
initView
(
view
);
initView
(
view
);
...
@@ -312,7 +312,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
...
@@ -312,7 +312,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
case
R
.
id
.
ll_head_login
:
case
R
.
id
.
ll_head_login
:
if
(
homeActivity
.
fragment_mycard_chatting_room
.
isVisible
())
if
(
homeActivity
.
fragment_mycard_chatting_room
.
isVisible
())
getChildFragmentManager
().
beginTransaction
().
hide
(
homeActivity
.
fragment_mycard_chatting_room
).
commit
();
getChildFragmentManager
().
beginTransaction
().
hide
(
homeActivity
.
fragment_mycard_chatting_room
).
commit
();
mWebViewPlus
.
loadUrl
(
mMyCard
.
URL_MC_LOGOUT
);
mWebViewPlus
.
loadUrl
(
MyCard
.
getMCLogoutUrl
()
);
break
;
break
;
case
R
.
id
.
tv_back_mc
:
case
R
.
id
.
tv_back_mc
:
onHome
();
onHome
();
...
@@ -345,30 +345,39 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
...
@@ -345,30 +345,39 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
}
}
@Override
@Override
public
void
onLogin
(
String
name
,
String
icon
,
String
statu
)
{
public
void
onLogin
(
McUser
mcUser
,
String
exception
)
{
//重登、切换用户即时更新用户和id信息
if
(!
TextUtils
.
isEmpty
(
exception
)){
if
(
mWebViewPlus
.
getUrl
()
!=
null
)
{
return
;
String
url
=
mWebViewPlus
.
getUrl
();
Log
.
i
(
"3.10.1看看"
,
url
);
if
(
url
.
startsWith
(
mMyCard
.
MC_MAIN_URL
))
{
String
data
=
new
String
(
Base64
.
decode
(
Uri
.
parse
(
url
).
getQueryParameter
(
"sso"
),
Base64
.
NO_WRAP
),
UTF_8
);
Uri
info
=
new
Uri
.
Builder
().
encodedQuery
(
data
).
build
();
mMyCard
.
mUser
.
username
=
info
.
getQueryParameter
(
"username"
);
mMyCard
.
mUser
.
external_id
=
Integer
.
parseInt
(
info
.
getQueryParameter
(
"id"
));
lastModified
.
edit
().
putString
(
"user_name"
,
mMyCard
.
mUser
.
username
).
apply
();
lastModified
.
edit
().
putString
(
"user_external_id"
,
String
.
valueOf
(
mMyCard
.
mUser
.
external_id
)).
apply
();
serviceManagement
.
disSerVice
();
//先退出当前账号,待TYPE_MC_LOGIN处重新执行start()
}
}
serviceManagement
.
disSerVice
();
//先退出当前账号,待TYPE_MC_LOGIN处重新执行start()
//登录成功发送message
Message
message
=
new
Message
();
message
.
obj
=
mcUser
;
message
.
what
=
TYPE_MC_LOGIN
;
handler
.
sendMessage
(
message
);
}
}
@Override
public
void
onUpdate
(
String
name
,
String
icon
,
String
statu
)
{
McUser
mcUser
=
new
McUser
();
mcUser
.
setUsername
(
name
);
mcUser
.
setAvatar_url
(
icon
);
mcUser
.
setEmail
(
statu
);
//登录成功发送message
//登录成功发送message
Message
message
=
new
Message
();
Message
message
=
new
Message
();
message
.
obj
=
new
String
[]{
name
,
icon
,
statu
}
;
message
.
obj
=
mcUser
;
message
.
what
=
TYPE_MC_LOGIN
;
message
.
what
=
TYPE_MC_LOGIN
;
handler
.
sendMessage
(
message
);
handler
.
sendMessage
(
message
);
}
}
@Override
public
void
onLogout
(
String
message
)
{
if
(!
TextUtils
.
isEmpty
(
message
))
YGOUtil
.
show
(
message
);
serviceManagement
.
disSerVice
();
}
@Override
@Override
public
void
backHome
()
{
public
void
backHome
()
{
...
@@ -404,6 +413,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
...
@@ -404,6 +413,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
else
else
tv_message
.
setText
(
currentMessage
.
getName
()
+
":"
+
currentMessage
.
getMessage
());
tv_message
.
setText
(
currentMessage
.
getName
()
+
":"
+
currentMessage
.
getMessage
());
}
else
{
}
else
{
Log
.
e
(
"MyCardFragment"
,
"登录失败"
+
exception
);
tv_message
.
setText
(
R
.
string
.
logining_failed
);
tv_message
.
setText
(
R
.
string
.
logining_failed
);
HandlerUtil
.
sendMessage
(
handler
,
TYPE_MC_LOGIN_FAILED
,
exception
);
HandlerUtil
.
sendMessage
(
handler
,
TYPE_MC_LOGIN_FAILED
,
exception
);
serviceManagement
.
setIsListener
(
false
);
serviceManagement
.
setIsListener
(
false
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/bean/McUser.java
0 → 100644
View file @
33ec5d6a
package
cn.garymb.ygomobile.ui.mycard.bean
;
import
java.io.Serializable
;
/**
* Create By feihua On 2022/8/27
*/
public
class
McUser
implements
Serializable
{
private
int
id
;
private
int
external_id
;
private
String
username
;
//不要用
private
String
name
;
private
String
email
;
private
String
avatar_url
;
private
boolean
admin
;
private
boolean
moderator
;
public
McUser
()
{
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getJID
()
{
return
username
+
"@mycard.moe"
;
}
public
String
getPassword
()
{
return
String
.
valueOf
(
external_id
);
}
public
String
getConference
()
{
return
"ygopro_china_north@conference.mycard.moe"
;
}
public
int
getExternal_id
()
{
return
external_id
;
}
public
void
setExternal_id
(
int
external_id
)
{
this
.
external_id
=
external_id
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
/**
* 不要用这个,用getUserName
* @return
*/
@Deprecated
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getEmail
()
{
return
email
;
}
public
void
setEmail
(
String
email
)
{
this
.
email
=
email
;
}
public
String
getAvatar_url
()
{
return
avatar_url
;
}
public
void
setAvatar_url
(
String
avatar_url
)
{
this
.
avatar_url
=
avatar_url
;
}
public
boolean
isAdmin
()
{
return
admin
;
}
public
void
setAdmin
(
boolean
admin
)
{
this
.
admin
=
admin
;
}
public
boolean
isModerator
()
{
return
moderator
;
}
public
void
setModerator
(
boolean
moderator
)
{
this
.
moderator
=
moderator
;
}
}
\ No newline at end of file
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/MycardChatFragment.java
View file @
33ec5d6a
...
@@ -94,7 +94,7 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener {
...
@@ -94,7 +94,7 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener {
@Override
@Override
public
void
addChatMessage
(
ChatMessage
message
)
{
public
void
addChatMessage
(
ChatMessage
message
)
{
boolean
isSmooth
=
YGOUtil
.
isVisBottom
(
main_rec
)
||
message
.
getName
().
equals
(
UserManagement
.
get
UserN
ame
());
boolean
isSmooth
=
YGOUtil
.
isVisBottom
(
main_rec
)
||
message
.
getName
().
equals
(
UserManagement
.
get
Dx
().
getMcUser
().
getUsern
ame
());
cadp
.
sx
();
cadp
.
sx
();
//如果在底部新消息来了或者消息是自己发送才滑到最下面,最后一个item有显示才算在底部
//如果在底部新消息来了或者消息是自己发送才滑到最下面,最后一个item有显示才算在底部
if
(
isSmooth
)
if
(
isSmooth
)
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/adapter/ChatAdapter.java
View file @
33ec5d6a
...
@@ -53,7 +53,7 @@ public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ViewHolder> {
...
@@ -53,7 +53,7 @@ public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ViewHolder> {
@Override
@Override
public
int
getItemViewType
(
int
position
)
{
public
int
getItemViewType
(
int
position
)
{
if
(
data
.
get
(
position
).
getName
().
equals
(
UserManagement
.
get
UserN
ame
()))
{
if
(
data
.
get
(
position
).
getName
().
equals
(
UserManagement
.
get
Dx
().
getMcUser
().
getUsern
ame
()))
{
return
CHAT_ME
;
return
CHAT_ME
;
}
else
{
}
else
{
return
CHAT
;
return
CHAT
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/management/ServiceManagement.java
View file @
33ec5d6a
...
@@ -27,6 +27,7 @@ import java.util.List;
...
@@ -27,6 +27,7 @@ import java.util.List;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.lite.BuildConfig
;
import
cn.garymb.ygomobile.lite.BuildConfig
;
import
cn.garymb.ygomobile.ui.mycard.base.OnJoinChatListener
;
import
cn.garymb.ygomobile.ui.mycard.base.OnJoinChatListener
;
import
cn.garymb.ygomobile.ui.mycard.bean.McUser
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatListener
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatListener
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatMessage
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.ChatMessage
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.util.TaxiConnectionListener
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.util.TaxiConnectionListener
;
...
@@ -249,7 +250,7 @@ public class ServiceManagement {
...
@@ -249,7 +250,7 @@ public class ServiceManagement {
if
(!
isListener
)
{
if
(!
isListener
)
{
MultiUserChatManager
multiUserChatManager
=
MultiUserChatManager
.
getInstanceFor
(
getCon
());
MultiUserChatManager
multiUserChatManager
=
MultiUserChatManager
.
getInstanceFor
(
getCon
());
muc
=
multiUserChatManager
.
getMultiUserChat
(
JidCreate
.
entityBareFrom
(
GROUP_ADDRESS
));
muc
=
multiUserChatManager
.
getMultiUserChat
(
JidCreate
.
entityBareFrom
(
GROUP_ADDRESS
));
muc
.
createOrJoin
(
Resourcepart
.
from
(
UserManagement
.
get
UserN
ame
()));
muc
.
createOrJoin
(
Resourcepart
.
from
(
UserManagement
.
get
Dx
().
getMcUser
().
getUsern
ame
()));
chatMessageList
.
clear
();
chatMessageList
.
clear
();
muc
.
addMessageListener
(
message
->
{
muc
.
addMessageListener
(
message
->
{
...
@@ -306,12 +307,9 @@ public class ServiceManagement {
...
@@ -306,12 +307,9 @@ public class ServiceManagement {
return
;
return
;
isStartLoading
=
true
;
isStartLoading
=
true
;
String
name
,
password
;
String
name
,
password
;
SharedPreferences
lastModified
=
App
.
get
().
getSharedPreferences
(
"lastModified"
,
Context
.
MODE_PRIVATE
);
McUser
mcUser
=
UserManagement
.
getDx
().
getMcUser
();
UserManagement
.
setUserName
(
lastModified
.
getString
(
"user_name"
,
null
));
name
=
mcUser
.
getUsername
();
UserManagement
.
setUserPassword
(
lastModified
.
getString
(
"user_external_id"
,
null
));
password
=
mcUser
.
getPassword
();
name
=
UserManagement
.
getUserName
();
password
=
UserManagement
.
getUserPassword
();
Log
.
i
(
BuildConfig
.
VERSION_NAME
+
"看看用户和ID"
,
name
+
"+"
+
password
);
if
(
TextUtils
.
isEmpty
(
name
)
||
TextUtils
.
isEmpty
(
password
))
{
if
(
TextUtils
.
isEmpty
(
name
)
||
TextUtils
.
isEmpty
(
password
))
{
isStartLoading
=
false
;
isStartLoading
=
false
;
han
.
sendEmptyMessage
(
CHAT_USER_NULL
);
han
.
sendEmptyMessage
(
CHAT_USER_NULL
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/management/UserManagement.java
View file @
33ec5d6a
package
cn.garymb.ygomobile.ui.mycard.mcchat.management
;
package
cn.garymb.ygomobile.ui.mycard.mcchat.management
;
import
cn.garymb.ygomobile.ui.mycard.bean.McUser
;
public
class
UserManagement
{
public
class
UserManagement
{
private
static
UserManagement
userManagement
=
new
UserManagement
();
private
static
UserManagement
userManagement
=
new
UserManagement
();
private
static
String
userName
,
userPassword
;
private
McUser
mcUser
;
private
UserManagement
()
{
private
UserManagement
()
{
}
}
public
static
String
getUserName
()
{
public
McUser
getMcUser
()
{
return
userName
;
return
mcUser
;
}
public
static
void
setUserName
(
String
name
)
{
userName
=
name
;
}
}
public
static
String
getUserPassword
()
{
public
void
setMcUser
(
McUser
mcUser
)
{
return
userPassword
;
this
.
mcUser
=
mcUser
;
}
public
static
void
setUserPassword
(
String
password
)
{
userPassword
=
password
;
}
}
public
static
UserManagement
getDx
()
{
public
static
UserManagement
getDx
()
{
return
userManagement
;
return
userManagement
;
}
}
public
void
logout
()
{
mcUser
=
null
;
}
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/util/TaxiConnectionListener.java
View file @
33ec5d6a
...
@@ -12,6 +12,7 @@ import org.jivesoftware.smack.XMPPConnection;
...
@@ -12,6 +12,7 @@ import org.jivesoftware.smack.XMPPConnection;
import
java.util.Timer
;
import
java.util.Timer
;
import
java.util.TimerTask
;
import
java.util.TimerTask
;
import
cn.garymb.ygomobile.ui.mycard.bean.McUser
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.ServiceManagement
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.ServiceManagement
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.UserManagement
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.management.UserManagement
;
...
@@ -61,8 +62,11 @@ public class TaxiConnectionListener implements ConnectionListener {
...
@@ -61,8 +62,11 @@ public class TaxiConnectionListener implements ConnectionListener {
class
timetask
extends
TimerTask
{
class
timetask
extends
TimerTask
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
username
=
UserManagement
.
getUserName
();
McUser
mcUser
=
UserManagement
.
getDx
().
getMcUser
();
password
=
UserManagement
.
getUserPassword
();
if
(
mcUser
==
null
)
return
;
username
=
mcUser
.
getUsername
();
password
=
mcUser
.
getPassword
();
if
(
username
!=
null
&&
password
!=
null
)
{
if
(
username
!=
null
&&
password
!=
null
)
{
sm
.
setReLogin
(
false
);
sm
.
setReLogin
(
false
);
Log
.
e
(
"TaxiConnectionListener"
,
"尝试登录"
);
Log
.
e
(
"TaxiConnectionListener"
,
"尝试登录"
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
View file @
33ec5d6a
...
@@ -135,7 +135,6 @@ public class YGOUtil {
...
@@ -135,7 +135,6 @@ public class YGOUtil {
final
int
offset
=
recyclerView
.
computeVerticalScrollOffset
();
final
int
offset
=
recyclerView
.
computeVerticalScrollOffset
();
final
int
range
=
recyclerView
.
computeVerticalScrollRange
()
-
recyclerView
.
computeVerticalScrollExtent
();
final
int
range
=
recyclerView
.
computeVerticalScrollRange
()
-
recyclerView
.
computeVerticalScrollExtent
();
Log
.
e
(
"MycardFragment"
,(
visibleItemCount
>
0
)+
" "
+(
lastVisibleItemPosition
>=
(
totalItemCount
-
3
))+
" "
+(
state
==
recyclerView
.
SCROLL_STATE_IDLE
)+
"高度"
+(
totalItemCount
-
3
)+
" "
+
lastVisibleItemPosition
+
" "
+(
range
-
offset
));
if
(
visibleItemCount
>
0
&&
lastVisibleItemPosition
>=
totalItemCount
-
3
&&
state
==
recyclerView
.
SCROLL_STATE_IDLE
){
if
(
visibleItemCount
>
0
&&
lastVisibleItemPosition
>=
totalItemCount
-
3
&&
state
==
recyclerView
.
SCROLL_STATE_IDLE
){
return
true
;
return
true
;
}
else
{
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment