Commit ad44c82d authored by sheteng's avatar sheteng

fix1

parent 09a13637
...@@ -104,6 +104,21 @@ public class MainActivity2 extends AppCompatActivity { ...@@ -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(); .create();
alertDialog.show(); alertDialog.show();
......
...@@ -26,16 +26,15 @@ public class LoginViewModel extends ViewModel { ...@@ -26,16 +26,15 @@ public class LoginViewModel extends ViewModel {
public MutableLiveData<List<Long>> channelList = new MutableLiveData<>(); public MutableLiveData<List<Long>> channelList = new MutableLiveData<>();
public void login(String username, String userId) { public void login(String appKey, String appsecret, String username, String userId, String ip, int port) {
// can be launched in a separate asynchronous job
String appKey = "c981adfde9c4000";
Long id = Long.parseLong(userId); Long id = Long.parseLong(userId);
String extData = "extData"; String extData = "extData";
Long ts = System.currentTimeMillis(); Long ts = System.currentTimeMillis();
String data = appKey + "&" + id + "&" + username + "&" + extData + "&" + ts + String data = appKey + "&" + id + "&" + username + "&" + extData + "&" + ts +
"&wW7cR31PwJseIoZMOs311nljHpwUmujs"; "&" + appsecret;
//sign计算在服务器,本地不要暴露appsecrect //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() { CCIMClient.getInstance().initSDK(appKey, username, extData, id, ts, sign, new OnConnectListener() {
@Override @Override
public void onSocketConnection() { public void onSocketConnection() {
......
...@@ -40,8 +40,7 @@ public class LoginActivity extends AppCompatActivity { ...@@ -40,8 +40,7 @@ public class LoginActivity extends AppCompatActivity {
loginViewModel.loginState.observe(this, new Observer<Boolean>() { loginViewModel.loginState.observe(this, new Observer<Boolean>() {
@Override @Override
public void onChanged(Boolean aBoolean) { public void onChanged(Boolean aBoolean) {
loadingProgressBar.setVisibility(View.GONE); if (aBoolean) {
if (aBoolean){
Intent intent = new Intent(LoginActivity.this, MainActivity2.class); Intent intent = new Intent(LoginActivity.this, MainActivity2.class);
startActivity(intent); startActivity(intent);
finish(); finish();
...@@ -53,18 +52,21 @@ public class LoginActivity extends AppCompatActivity { ...@@ -53,18 +52,21 @@ public class LoginActivity extends AppCompatActivity {
loginButton.setOnClickListener(new View.OnClickListener() { loginButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
loadingProgressBar.setVisibility(View.VISIBLE);
String username = usernameEditText.getText().toString(); String username = usernameEditText.getText().toString();
if (TextUtils.isEmpty(username)){ if (TextUtils.isEmpty(username)) {
Toast.makeText(LoginActivity.this,"username is empty",Toast.LENGTH_SHORT).show(); Toast.makeText(LoginActivity.this, "username is empty", Toast.LENGTH_SHORT).show();
return; return;
} }
String id = UserIdEditText.getText().toString(); String id = UserIdEditText.getText().toString();
if (TextUtils.isEmpty(id)){ if (TextUtils.isEmpty(id)) {
Toast.makeText(LoginActivity.this,"userid is empty",Toast.LENGTH_SHORT).show(); Toast.makeText(LoginActivity.this, "userid is empty", Toast.LENGTH_SHORT).show();
return; 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; package com.ccwangluo.im.ui.notifications;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -137,7 +140,11 @@ public class NotificationsFragment extends Fragment { ...@@ -137,7 +140,11 @@ public class NotificationsFragment extends Fragment {
CCIMClient.getInstance().createChannel(name, tag, checked, longs, new ResultEventCallback<Long>() { CCIMClient.getInstance().createChannel(name, tag, checked, longs, new ResultEventCallback<Long>() {
@Override @Override
public void onSuccess(Long aLong) { 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 { ...@@ -145,8 +152,6 @@ public class NotificationsFragment extends Fragment {
builder.show(); builder.show();
} }
}); });
return root; return root;
} }
......
<?xml version="1.0" encoding="utf-8"?> <?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:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container" android:id="@+id/container"
android:padding="20dp"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="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"> tools:context=".ui.login.LoginActivity">
<EditText <EditText
android:id="@+id/username" android:id="@+id/username"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="96dp" android:layout_marginTop="96dp"
android:hint="Username" android:hint="Username"
...@@ -26,7 +24,7 @@ ...@@ -26,7 +24,7 @@
<EditText <EditText
android:id="@+id/password" android:id="@+id/password"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:hint="UserId" android:hint="UserId"
...@@ -38,6 +36,62 @@ ...@@ -38,6 +36,62 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username" /> 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 <Button
android:id="@+id/login" android:id="@+id/login"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -52,18 +106,4 @@ ...@@ -52,18 +106,4 @@
app:layout_constraintTop_toBottomOf="@+id/password" app:layout_constraintTop_toBottomOf="@+id/password"
app:layout_constraintVertical_bias="0.2" /> app:layout_constraintVertical_bias="0.2" />
<ProgressBar </LinearLayout>
android:id="@+id/loading" \ No newline at end of file
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
<?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 @@ ...@@ -37,11 +37,4 @@
app:defaultNavHost="true" app:defaultNavHost="true"
tools:layout="@layout/fragment_connect" /> 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> </navigation>
\ No newline at end of file
...@@ -70,6 +70,10 @@ public class CCIMClient { ...@@ -70,6 +70,10 @@ public class CCIMClient {
return mInstance; 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) { 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() { socketManageer.initChat(appKey, userName, extData, userId, ts, sign, new OnConnectListener() {
...@@ -340,8 +344,10 @@ public class CCIMClient { ...@@ -340,8 +344,10 @@ public class CCIMClient {
ContactOuterClass.Contact newContact = chatResponseMessage.getCheckContactReqRes().getNewContact(); ContactOuterClass.Contact newContact = chatResponseMessage.getCheckContactReqRes().getNewContact();
try { try {
String print = JsonFormat.printer().print(newContact); String print = JsonFormat.printer().print(newContact);
if (accept) {
Contact contact = new Gson().fromJson(print, Contact.class); Contact contact = new Gson().fromJson(print, Contact.class);
contacts.put(contact.getContactUserId(),contact); contacts.put(contact.getContactUserId(), contact);
}
callback.onSuccess(); callback.onSuccess();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -31,8 +31,8 @@ import ccim.protocol.Push; ...@@ -31,8 +31,8 @@ import ccim.protocol.Push;
public class SocketManageer { public class SocketManageer {
private final Logger logger = Logger.getLogger(CCIMClient.class.getName()); 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 = "117.144.156.2";
private static final String SERVER_IP = "10.4.5.134"; private static String SERVER_IP = "10.4.5.134";
private static final int SERVER_PORT = 8000; private static int SERVER_PORT = 8000;
private static final int version = 1; private static final int version = 1;
...@@ -248,7 +248,7 @@ public class SocketManageer { ...@@ -248,7 +248,7 @@ public class SocketManageer {
builder.setConnectionStateAckReq((Chat.ConnectionStateAckRequest) request); builder.setConnectionStateAckReq((Chat.ConnectionStateAckRequest) request);
} else if (request instanceof ContactOuterClass.DeleteContactGroupRequest) { } else if (request instanceof ContactOuterClass.DeleteContactGroupRequest) {
builder.setDeleteContactGroupReq((ContactOuterClass.DeleteContactGroupRequest) request); builder.setDeleteContactGroupReq((ContactOuterClass.DeleteContactGroupRequest) request);
} else if (request instanceof Chat.ConnectRequest){ } else if (request instanceof Chat.ConnectRequest) {
builder.setConnectReq((Chat.ConnectRequest) request); builder.setConnectReq((Chat.ConnectRequest) request);
} }
...@@ -269,4 +269,9 @@ public class SocketManageer { ...@@ -269,4 +269,9 @@ public class SocketManageer {
public void disConnect() { public void disConnect() {
OkSocket.open(chatInfo).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