Commit ad44c82d authored by sheteng's avatar sheteng

fix1

parent 09a13637
......@@ -104,6 +104,21 @@ public class MainActivity2 extends AppCompatActivity {
}
});
}
}).setNegativeButton("关闭", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CCIMClient.getInstance().checkContactReq(user.getUserId(), false, new ResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailed(int errorCode) {
}
});
}
})
.create();
alertDialog.show();
......
......@@ -26,16 +26,15 @@ public class LoginViewModel extends ViewModel {
public MutableLiveData<List<Long>> channelList = new MutableLiveData<>();
public void login(String username, String userId) {
// can be launched in a separate asynchronous job
String appKey = "c981adfde9c4000";
public void login(String appKey, String appsecret, String username, String userId, String ip, int port) {
Long id = Long.parseLong(userId);
String extData = "extData";
Long ts = System.currentTimeMillis();
String data = appKey + "&" + id + "&" + username + "&" + extData + "&" + ts +
"&wW7cR31PwJseIoZMOs311nljHpwUmujs";
"&" + appsecret;
//sign计算在服务器,本地不要暴露appsecrect
String sign = HmacUtil.stringToSign("wW7cR31PwJseIoZMOs311nljHpwUmujs", data);
String sign = HmacUtil.stringToSign(appsecret, data);
CCIMClient.getInstance().initServer(ip, port);
CCIMClient.getInstance().initSDK(appKey, username, extData, id, ts, sign, new OnConnectListener() {
@Override
public void onSocketConnection() {
......
......@@ -40,8 +40,7 @@ public class LoginActivity extends AppCompatActivity {
loginViewModel.loginState.observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
loadingProgressBar.setVisibility(View.GONE);
if (aBoolean){
if (aBoolean) {
Intent intent = new Intent(LoginActivity.this, MainActivity2.class);
startActivity(intent);
finish();
......@@ -53,18 +52,21 @@ public class LoginActivity extends AppCompatActivity {
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadingProgressBar.setVisibility(View.VISIBLE);
String username = usernameEditText.getText().toString();
if (TextUtils.isEmpty(username)){
Toast.makeText(LoginActivity.this,"username is empty",Toast.LENGTH_SHORT).show();
if (TextUtils.isEmpty(username)) {
Toast.makeText(LoginActivity.this, "username is empty", Toast.LENGTH_SHORT).show();
return;
}
String id = UserIdEditText.getText().toString();
if (TextUtils.isEmpty(id)){
Toast.makeText(LoginActivity.this,"userid is empty",Toast.LENGTH_SHORT).show();
if (TextUtils.isEmpty(id)) {
Toast.makeText(LoginActivity.this, "userid is empty", Toast.LENGTH_SHORT).show();
return;
}
loginViewModel.login(username,id);
String appkey = binding.appkey.getText().toString();
String appSecret = binding.appSecret.getText().toString();
String ip = binding.ip.getText().toString();
int port = Integer.parseInt(binding.port.getText().toString());
loginViewModel.login(appkey,appSecret,username, id,ip,port);
}
});
}
......
package com.ccwangluo.im.ui.login;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.im.data.LoginViewModel;
import com.ccwangluo.im.databinding.FragmentLoginBinding;
/**
*/
public class LoginFragment extends Fragment {
private FragmentLoginBinding binding;
private LoginViewModel loginViewModel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentLoginBinding.inflate(inflater, container, false);
loginViewModel = new ViewModelProvider(this)
.get(LoginViewModel.class);
final EditText usernameEditText = binding.username;
final EditText UserIdEditText = binding.password;
final Button loginButton = binding.login;
final ProgressBar loadingProgressBar = binding.loading;
loginViewModel.loginState.observe(getViewLifecycleOwner(), new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
loadingProgressBar.setVisibility(View.GONE);
if (aBoolean){
}
}
});
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadingProgressBar.setVisibility(View.VISIBLE);
String username = usernameEditText.getText().toString();
if (TextUtils.isEmpty(username)){
Toast.makeText(getContext(),"username is empty",Toast.LENGTH_SHORT).show();
return;
}
String id = UserIdEditText.getText().toString();
if (TextUtils.isEmpty(id)){
Toast.makeText(getContext(),"userid is empty",Toast.LENGTH_SHORT).show();
return;
}
loginViewModel.login(username,id);
}
});
return binding.getRoot();
}
}
\ No newline at end of file
package com.ccwangluo.im.ui.notifications;
import android.app.AlertDialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;
......@@ -137,7 +140,11 @@ public class NotificationsFragment extends Fragment {
CCIMClient.getInstance().createChannel(name, tag, checked, longs, new ResultEventCallback<Long>() {
@Override
public void onSuccess(Long aLong) {
Toast.makeText(getContext(), "create success", Toast.LENGTH_SHORT).show();
//获取剪贴板管理器:
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData mClipData = ClipData.newPlainText("Label", aLong.toString());
cm.setPrimaryClip(mClipData);
Toast.makeText(getContext(), "create success,id copy success", Toast.LENGTH_SHORT).show();
}
});
}
......@@ -145,8 +152,6 @@ public class NotificationsFragment extends Fragment {
builder.show();
}
});
return root;
}
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:padding="20dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".ui.login.LoginActivity">
<EditText
android:id="@+id/username"
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="96dp"
android:hint="Username"
......@@ -26,7 +24,7 @@
<EditText
android:id="@+id/password"
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="UserId"
......@@ -38,6 +36,62 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<EditText
android:id="@+id/appkey"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="appkey"
android:text="c981adfde9c4000"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<EditText
android:id="@+id/appSecret"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="appSecret"
android:text="wW7cR31PwJseIoZMOs311nljHpwUmujs"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<EditText
android:id="@+id/ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="ip"
android:text="10.4.5.134"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<EditText
android:id="@+id/port"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="port"
android:text="8000"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
......@@ -52,18 +106,4 @@
app:layout_constraintTop_toBottomOf="@+id/password"
app:layout_constraintVertical_bias="0.2" />
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="64dp"
android:layout_marginBottom="64dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/password"
app:layout_constraintStart_toStartOf="@+id/password"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity2">
<EditText
android:id="@+id/username"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="96dp"
android:hint="Username"
android:text="10"
android:inputType="textEmailAddress"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="UserId"
android:text="10"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" />
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_marginTop="16dp"
android:layout_marginBottom="64dp"
android:text="@string/action_sign_in"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password"
app:layout_constraintVertical_bias="0.2" />
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="64dp"
android:layout_marginBottom="64dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/password"
app:layout_constraintStart_toStartOf="@+id/password"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -37,11 +37,4 @@
app:defaultNavHost="true"
tools:layout="@layout/fragment_connect" />
<fragment
android:id="@+id/navigation_login"
android:name="com.ccwangluo.im.ui.login.LoginFragment"
android:label="登录"
app:defaultNavHost="true"
tools:layout="@layout/fragment_connect" />
</navigation>
\ No newline at end of file
......@@ -70,6 +70,10 @@ public class CCIMClient {
return mInstance;
}
public void initServer(String ip,int port){
socketManageer.initServer(ip,port);
}
public void initSDK(String appKey, String userName, String extData, Long userId, Long ts, String sign, OnConnectListener resultCallback) {
socketManageer.initChat(appKey, userName, extData, userId, ts, sign, new OnConnectListener() {
......@@ -340,8 +344,10 @@ public class CCIMClient {
ContactOuterClass.Contact newContact = chatResponseMessage.getCheckContactReqRes().getNewContact();
try {
String print = JsonFormat.printer().print(newContact);
if (accept) {
Contact contact = new Gson().fromJson(print, Contact.class);
contacts.put(contact.getContactUserId(),contact);
contacts.put(contact.getContactUserId(), contact);
}
callback.onSuccess();
} catch (Exception e) {
e.printStackTrace();
......
......@@ -31,8 +31,8 @@ import ccim.protocol.Push;
public class SocketManageer {
private final Logger logger = Logger.getLogger(CCIMClient.class.getName());
// private static final String SERVER_IP = "117.144.156.2";
private static final String SERVER_IP = "10.4.5.134";
private static final int SERVER_PORT = 8000;
private static String SERVER_IP = "10.4.5.134";
private static int SERVER_PORT = 8000;
private static final int version = 1;
......@@ -248,7 +248,7 @@ public class SocketManageer {
builder.setConnectionStateAckReq((Chat.ConnectionStateAckRequest) request);
} else if (request instanceof ContactOuterClass.DeleteContactGroupRequest) {
builder.setDeleteContactGroupReq((ContactOuterClass.DeleteContactGroupRequest) request);
} else if (request instanceof Chat.ConnectRequest){
} else if (request instanceof Chat.ConnectRequest) {
builder.setConnectReq((Chat.ConnectRequest) request);
}
......@@ -269,4 +269,9 @@ public class SocketManageer {
public void disConnect() {
OkSocket.open(chatInfo).disconnect();
}
public void initServer(String ip, int port) {
SERVER_IP = ip;
SERVER_PORT = port;
}
}
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