Commit 20f2fc4e authored by jianglx's avatar jianglx

添加Im

parent 51a60406
...@@ -114,13 +114,14 @@ dependencies { ...@@ -114,13 +114,14 @@ dependencies {
api 'com.jakewharton:butterknife:9.0.0-rc1' api 'com.jakewharton:butterknife:9.0.0-rc1'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support.constraint:constraint-layout:1.1.3'
// 进程保护
implementation 'com.fanjun:keeplive:1.1.10'
debugApi 'com.squareup.leakcanary:leakcanary-android:1.6.1' debugApi 'com.squareup.leakcanary:leakcanary-android:1.6.1'
releaseApi 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.1' releaseApi 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.1'
api 'cn.jiguang.sdk:jpush:3.3.4'
api 'cn.jiguang.sdk:jpush:3.3.4' // 此处以JPush 3.3.4 版本为例。 // 此处以JPush 3.3.4 版本为例。
api 'cn.jiguang.sdk:jcore:2.1.2' // 此处以JCore 2.1.2 版本为例。 api 'cn.jiguang.sdk:jcore:2.1.2'
// 此处以JCore 2.1.2 版本为例。
// api project(path: ':RvTravel') // api project(path: ':RvTravel')
api project(':component_resource') api project(':component_resource')
api project(path: ':module_home') api project(path: ':module_home')
...@@ -128,4 +129,5 @@ dependencies { ...@@ -128,4 +129,5 @@ dependencies {
api project(path: ':module_camp') api project(path: ':module_camp')
api project(path: ':module_tourism') api project(path: ':module_tourism')
api project(path: ':module_discovery') api project(path: ':module_discovery')
implementation project(':plugin_im')
} }
package com.xxfc.rv; package com.xxfc.rv;
import android.Manifest;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Notification; import android.app.Notification;
import android.content.ComponentName; import android.content.ComponentName;
...@@ -7,15 +8,18 @@ import android.content.Context; ...@@ -7,15 +8,18 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.location.LocationManager; import android.location.LocationManager;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -23,8 +27,12 @@ import android.widget.TextView; ...@@ -23,8 +27,12 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.fanjun.keeplive.KeepLive;
import com.fanjun.keeplive.config.ForegroundNotification;
import com.fanjun.keeplive.config.KeepLiveService;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.MessageEventLogout;
import com.ruiwenliu.wrapper.SPConstance; import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.adapter.TabAdapter; import com.ruiwenliu.wrapper.adapter.TabAdapter;
import com.ruiwenliu.wrapper.base.BaseActivity; import com.ruiwenliu.wrapper.base.BaseActivity;
...@@ -34,16 +42,27 @@ import com.ruiwenliu.wrapper.bean.ActBean; ...@@ -34,16 +42,27 @@ import com.ruiwenliu.wrapper.bean.ActBean;
import com.ruiwenliu.wrapper.bean.UpdateTokenBean; import com.ruiwenliu.wrapper.bean.UpdateTokenBean;
import com.ruiwenliu.wrapper.receiver.NetWorkReceiver; import com.ruiwenliu.wrapper.receiver.NetWorkReceiver;
import com.ruiwenliu.wrapper.statusbar.StatusBarUtil; import com.ruiwenliu.wrapper.statusbar.StatusBarUtil;
import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.util.listener.SwitchFragment; import com.ruiwenliu.wrapper.util.listener.SwitchFragment;
import com.ruiwenliu.wrapper.weight.CustomScrollViewPager; import com.ruiwenliu.wrapper.weight.CustomScrollViewPager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.camp.CampFragment; import com.rv.camp.CampFragment;
import com.rv.component.utils.Cookie; import com.rv.component.utils.Cookie;
import com.rv.component.utils.DateUtils; import com.rv.component.utils.DateUtils;
import com.rv.component.utils.LogUtil;
import com.rv.component.utils.RvCache;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter; import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.rv.home.rv.module.ui.main.home.HomeFragment; import com.rv.home.rv.module.ui.main.home.HomeFragment;
import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean; import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean;
import com.rv.im.Constants;
import com.rv.im.ImService;
import com.rv.im.ImSetting;
import com.rv.im.broadcast.RemoteReceiver;
import com.rv.im.call.AudioOrVideoController;
import com.rv.im.mvp.view.IChatView;
import com.rv.im.util.Md5Util;
import com.rv.rvmine.MineFragment; import com.rv.rvmine.MineFragment;
import com.rv.share.WebViewActivity; import com.rv.share.WebViewActivity;
import com.rv.share.view.PromotionDialog; import com.rv.share.view.PromotionDialog;
...@@ -53,8 +72,14 @@ import com.rv.version.bean.VersionCheckBean; ...@@ -53,8 +72,14 @@ import com.rv.version.bean.VersionCheckBean;
import com.rv.version.util.DownloadAppUtils; import com.rv.version.util.DownloadAppUtils;
import com.rv.version.util.UpdateAppUtils; import com.rv.version.util.UpdateAppUtils;
import com.xxfc.discovery.DiscoveryFragment; import com.xxfc.discovery.DiscoveryFragment;
import com.xxfc.discovery.api.DiscoveryApi;
import com.xxfc.discovery.bean.DiscoveryIMTokenBean;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -66,6 +91,7 @@ import butterknife.OnClick; ...@@ -66,6 +91,7 @@ import butterknife.OnClick;
import cn.jpush.android.api.BasicPushNotificationBuilder; import cn.jpush.android.api.BasicPushNotificationBuilder;
import cn.jpush.android.api.CustomPushNotificationBuilder; import cn.jpush.android.api.CustomPushNotificationBuilder;
import cn.jpush.android.api.JPushInterface; import cn.jpush.android.api.JPushInterface;
import pub.devrel.easypermissions.EasyPermissions;
public class MainActivity extends BaseActivity<CommonPresenter> { public class MainActivity extends BaseActivity<CommonPresenter> {
...@@ -106,6 +132,13 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -106,6 +132,13 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
private NetWorkReceiver netReceiver = null; private NetWorkReceiver netReceiver = null;
private boolean hasBindService = false; //是否已经绑定了服务
private ImService mService;
private String[] permissions = new String[]{android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.CAMERA, android.Manifest.permission.RECORD_AUDIO, Manifest.permission.CALL_PHONE};
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
return new Intent(context, MainActivity.class); return new Intent(context, MainActivity.class);
} }
...@@ -119,10 +152,25 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -119,10 +152,25 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
StatusBarUtil.setRootViewFitsSystemWindows(mActivity, false); StatusBarUtil.setRootViewFitsSystemWindows(mActivity, false);
// initKeepLive();
AudioOrVideoController.init(getApplicationContext(), logoutListener);
EventBus.getDefault().register(this);
checkPermissions();
}
/********
* 检查所有的权限
*/
private void checkPermissions() {
if (!EasyPermissions.hasPermissions(this, permissions)) {
EasyPermissions.requestPermissions(this, "App需要此权限,否则无法正常使用", IChatView.REQUEST_PERMISSION_FILE, permissions);
return;
}
} }
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
registerReceiver();
updateAppUtils = UpdateAppUtils.from(MainActivity.this); updateAppUtils = UpdateAppUtils.from(MainActivity.this);
viewPager = findViewById(R.id.pager_view_fragment); viewPager = findViewById(R.id.pager_view_fragment);
showTitle(false); showTitle(false);
...@@ -151,7 +199,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -151,7 +199,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
private void initNotification() { private void initNotification() {
BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(mActivity); BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(mActivity);
builder.statusBarDrawable = R.drawable.logo_title; builder.statusBarDrawable = R.drawable.logo_title;
builder.notificationFlags =Notification.FLAG_AUTO_CANCEL builder.notificationFlags = Notification.FLAG_AUTO_CANCEL
| Notification.FLAG_SHOW_LIGHTS; //设置为自动消失和呼吸灯闪烁 | Notification.FLAG_SHOW_LIGHTS; //设置为自动消失和呼吸灯闪烁
builder.notificationDefaults = Notification.DEFAULT_SOUND builder.notificationDefaults = Notification.DEFAULT_SOUND
| Notification.DEFAULT_VIBRATE | Notification.DEFAULT_VIBRATE
...@@ -233,6 +281,15 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -233,6 +281,15 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
promotionDialog.show(); promotionDialog.show();
} }
break; break;
case 3:
hasBindService = true;
DiscoveryIMTokenBean intokenBean = (DiscoveryIMTokenBean) result;
if (intokenBean != null) {
initIm(intokenBean.getData());
}
break;
case 4: case 4:
UpdateTokenBean updateTokenBean = (UpdateTokenBean) result; UpdateTokenBean updateTokenBean = (UpdateTokenBean) result;
if (updateTokenBean != null && !TextUtils.isEmpty(updateTokenBean.getData())) { if (updateTokenBean != null && !TextUtils.isEmpty(updateTokenBean.getData())) {
...@@ -428,6 +485,38 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -428,6 +485,38 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
} }
} }
private void initKeepLive() {
// 定义前台服务的默认样式。即标题、描述和图标
ForegroundNotification foregroundNotification = new ForegroundNotification("IM核心", "进程守护中", R.mipmap.logo,
//定义前台服务的通知点击事件
(context, intent) -> {
});
//启动保活服务
KeepLive.startWork(getApplication(), KeepLive.RunMode.ENERGY, foregroundNotification,
//你需要保活的服务,如socket连接、定时任务等,建议不用匿名内部类的方式在这里写
new KeepLiveService() {
/**
* 运行中
* 由于服务可能会多次自动启动,该方法可能重复调用
*/
@Override
public void onWorking() {
Log.e("xuan", "onWorking: ");
}
/**
* 服务终止
* 由于服务可能会被多次终止,该方法可能重复调用,需同onWorking配套使用,如注册和注销broadcast
*/
@Override
public void onStop() {
Log.e("xuan", "onStop: ");
}
}
);
}
/** /**
* 判断是否登录 * 判断是否登录
* *
...@@ -465,13 +554,122 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -465,13 +554,122 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
} }
} }
@Override
public void onResume() {
super.onResume();
imLogin();
}
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
destory();
DownloadAppUtils.unRegisterReceiver(getApplicationContext()); DownloadAppUtils.unRegisterReceiver(getApplicationContext());
if (netReceiver != null) { if (netReceiver != null) {
unregisterReceiver(netReceiver); unregisterReceiver(netReceiver);
netReceiver = null; netReceiver = null;
} }
} }
private ServiceConnection imServiceConnection;
private RemoteReceiver receiver = null;
private void imLogin() {
if (!hasBindService && isLogin()) {
Map<String, Object> headMap = new LinkedHashMap<>();
headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.postData(RvFrameConfig.HOST, 3, DiscoveryApi.DISCOVERY_IM_LOGIN, DiscoveryIMTokenBean.class, headMap, headMap, false);
}
}
private void initIm(String imToken) {
//
ImSetting.setImConfig(Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_IMUSERID),
Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_NAME),
Md5Util.toMD5("aaaaa11111"), imToken);
// ImSetting.setImConfig(Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_IMUSERID),
// Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_NAME),
// "$2a$12$tclXJq1sHgnX0YZ5SMPXMOGVXXZR7IdcUKFOS3v3Hg103TwvOsNIG",imToken);
Intent intent = new Intent(this, ImService.class);
bindService(intent, mConnection, BIND_AUTO_CREATE);
}
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mService = ((ImService.ImServiceBinder) service).getService();
imServiceConnection = this;
}
@Override
public void onServiceDisconnected(ComponentName name) {
LogUtil.e("MainActivity", "onServiceDisconnected() called with: name = [" + name + "]");
imServiceConnection = null;
mService = null;
}
};
@Subscribe(threadMode = ThreadMode.MAIN)
public void logout(MessageEventLogout bean) {
hasBindService = false;
ImSetting.logout();
if (mService != null) {
mService.logout();
unbindService(imServiceConnection);
mService = null;
}
}
void destory() {
if (imServiceConnection != null) {
try {
unbindService(imServiceConnection);
} catch (Exception e) {
LogUtil.e("MainActivity", "destory" + e.getMessage());
}
}
AudioOrVideoController.init(getApplicationContext(), logoutListener).release();
EventBus.getDefault().unregister(this);
if (receiver != null) {
unregisterReceiver(receiver);
receiver = null;
}
}
private void registerReceiver() {
if (receiver == null) {
receiver = new RemoteReceiver(remoteListener);
}
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Constants.ACTIONS.ACTION_RECEIVE_REMOTE_LOGIN);
registerReceiver(receiver, intentFilter);
}
private RemoteReceiver.RemoteListener remoteListener = () -> {
//退出登录
Toast.makeText(getApplicationContext(), "账号远程登录", Toast.LENGTH_SHORT).show();
hasBindService = false;
UtilsManager.getInstance(getApplicationContext()).clearShareData("city_json");
UtilsManager.getInstance(getApplicationContext()).setShNull();
RvCache.getInstance(getApplicationContext()).clear();
Cookie.clear(getApplicationContext());
OkGoUtil.clearToken();
ImSetting.logout();
startActivity(LoginRvActivity.getIntent(getApplicationContext(), 0));
showToast("退出成功!");
if (mAdapter != null) {
((MineFragment) mAdapter.getItem(4)).signOut();
}
};
private AudioOrVideoController.LogoutListener logoutListener = new AudioOrVideoController.LogoutListener() {
@Override
public void logout() {
}
};
} }
...@@ -22,6 +22,7 @@ import com.frame.base.manager.MyFrameManager; ...@@ -22,6 +22,7 @@ import com.frame.base.manager.MyFrameManager;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.util.LogUtils; import com.ruiwenliu.wrapper.util.LogUtils;
import com.rv.component.utils.LogUtil; import com.rv.component.utils.LogUtil;
import com.rv.im.ImSetting;
import com.sh.sdk.shareinstall.ShareInstall; import com.sh.sdk.shareinstall.ShareInstall;
import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.LeakCanary;
import com.tencent.bugly.crashreport.CrashReport; import com.tencent.bugly.crashreport.CrashReport;
...@@ -53,6 +54,7 @@ public class RvClientApplication extends FrameApp { ...@@ -53,6 +54,7 @@ public class RvClientApplication extends FrameApp {
super.onCreate(); super.onCreate();
ViewTarget.setTagId(R.id.glideIndexTag); ViewTarget.setTagId(R.id.glideIndexTag);
Log.e("xxxxxxxxxxxxxxxxxxxxx", "RvClientApplication_onCreate"); Log.e("xxxxxxxxxxxxxxxxxxxxx", "RvClientApplication_onCreate");
ImSetting.init(this);
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build()); StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure(); builder.detectFileUriExposure();
......
...@@ -13,10 +13,15 @@ import com.ruiwenliu.wrapper.base.BaseActivity; ...@@ -13,10 +13,15 @@ import com.ruiwenliu.wrapper.base.BaseActivity;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.UtilsManager; import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.CacheEnum;
import com.rv.component.utils.Cookie; import com.rv.component.utils.Cookie;
import com.rv.component.utils.DateUtils; import com.rv.component.utils.DateUtils;
import com.rv.component.utils.LogUtil; import com.rv.component.utils.LogUtil;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter; import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.component.utils.RvCache;
import com.rv.im.AppConfig;
import com.rv.im.bean.ImConfig;
import com.rv.im.bean.ImConfigBean;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -32,7 +37,16 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> { ...@@ -32,7 +37,16 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
@Override @Override
public void onShowResult(int requestType, BaseBean result) { public void onShowResult(int requestType, BaseBean result) {
if (requestType == 0) {
ImConfigBean bean = (ImConfigBean) result;
ImConfig config;
if (bean != null && bean.resultCode == 1 && ((ImConfigBean) result).getData() != null) {
LogUtil.e("zq", "获取网络配置成功,使用服务端返回的配置并更新本地配置");
config = bean.getData();
AppConfig appConfig = AppConfig.initConfig(config);
RvCache.getInstance(mActivity).save(appConfig, CacheEnum.IM_CONFIG);
}
}
} }
@Override @Override
...@@ -51,6 +65,11 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> { ...@@ -51,6 +65,11 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
mPresenter.saveOnclick("8", ""); mPresenter.saveOnclick("8", "");
getImConfig();
}
private void getImConfig() {
mPresenter.getData(0, AppConfig.CONFIG_URL, ImConfigBean.class, false);
} }
@Override @Override
......
package com.ruiwenliu.wrapper;
public class MessageEventLogout {
public MessageEventLogout() {
}
}
...@@ -34,7 +34,7 @@ public abstract class BaseWrapperActivity extends SupportActivity { ...@@ -34,7 +34,7 @@ public abstract class BaseWrapperActivity extends SupportActivity {
private boolean mReceiverTag = false;//判断广播是否注册 private boolean mReceiverTag = false;//判断广播是否注册
protected boolean isRegister = true; protected boolean isRegister = true;
private TitleView titleView; protected TitleView titleView;
protected FrameLayout frameLayout; protected FrameLayout frameLayout;
private LinearLayout rootView; private LinearLayout rootView;
protected AppCompatActivity mActivity; protected AppCompatActivity mActivity;
......
package com.ruiwenliu.wrapper.util;
import android.content.Context;
import com.ruiwenliu.wrapper.MessageEventLogout;
import com.rv.component.utils.Cookie;
import com.rv.component.utils.RvCache;
import com.yuyife.okgo.OkGoUtil;
import org.greenrobot.eventbus.EventBus;
public class AppUtils {
public static void logout(Context context) {
UtilsManager.getInstance(context).clearShareData("city_json");
UtilsManager.getInstance(context).setShNull();
RvCache.getInstance(context).clear();
Cookie.clear(context);
OkGoUtil.clearToken();
EventBus.getDefault().post(new MessageEventLogout());
}
}
...@@ -8,6 +8,9 @@ buildscript { ...@@ -8,6 +8,9 @@ buildscript {
maven { maven {
url "http://mvn.mob.com/android" url "http://mvn.mob.com/android"
} }
maven {
url 'https://github.com/jitsi/jitsi-maven-repository/raw/master/releases'
}
maven { maven {
url "https://jitpack.io" url "https://jitpack.io"
} }
...@@ -39,6 +42,10 @@ allprojects { ...@@ -39,6 +42,10 @@ allprojects {
maven { maven {
url 'https://dl.bintray.com/cjt/maven' url 'https://dl.bintray.com/cjt/maven'
} }
maven {
url 'https://github.com/jitsi/jitsi-maven-repository/raw/master/releases'
}
} }
} }
......
...@@ -7,7 +7,8 @@ public enum CacheEnum { ...@@ -7,7 +7,8 @@ public enum CacheEnum {
MEMBER(0, "member"), // 会员 MEMBER(0, "member"), // 会员
USER(1, "user"), // 用户 USER(1, "user"), // 用户
CONSUMER_RECORD(2, "consumer_record"), // 消费记录 CONSUMER_RECORD(2, "consumer_record"), // 消费记录
VISTOR_LIST(3, "vistor_list"); //出游人列表 VISTOR_LIST(3, "vistor_list"), //出游人列表
IM_CONFIG(4,"im_config") ;
private int type; private int type;
private String fileName; private String fileName;
......
...@@ -131,6 +131,9 @@ public abstract class BaseLoginActivity<P extends MvpPresenter> extends BaseStat ...@@ -131,6 +131,9 @@ public abstract class BaseLoginActivity<P extends MvpPresenter> extends BaseStat
Cookie.save(getApplicationContext(), SPConstance.USER_JSON_TOKEN, registeredBean.getToken()); Cookie.save(getApplicationContext(), SPConstance.USER_JSON_TOKEN, registeredBean.getToken());
Cookie.save(getApplicationContext(), SPConstance.USER_JSON_TOKE_TIME, DateUtils.getCurDate()); Cookie.save(getApplicationContext(), SPConstance.USER_JSON_TOKE_TIME, DateUtils.getCurDate());
Cookie.save(getApplicationContext(), SPConstance.USER_JSON_IMUSERID, registeredBean.getData().getImUserId());
Cookie.save(getApplicationContext(),SPConstance.USER_JSON_IMTOKEN,registeredBean.getData().getImToken());
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_CODE, registeredBean.getData().getCode()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_CODE, registeredBean.getData().getCode()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_NAME, registeredBean.getData().getUsername()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_NAME, registeredBean.getData().getUsername()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_HEADERURL, registeredBean.getData().getHeaderurl()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_HEADERURL, registeredBean.getData().getHeaderurl()).commit();
......
package com.rv.home.rv.module.ui.main.home; package com.rv.home.rv.module.ui.main.home;
import android.Manifest; import android.Manifest;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
...@@ -38,6 +39,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; ...@@ -38,6 +39,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment; import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.util.LocationManager; import com.ruiwenliu.wrapper.util.LocationManager;
...@@ -47,6 +49,7 @@ import com.ruiwenliu.wrapper.util.listener.SwitchFragment; ...@@ -47,6 +49,7 @@ import com.ruiwenliu.wrapper.util.listener.SwitchFragment;
import com.ruiwenliu.wrapper.util.permission.RxPermission; import com.ruiwenliu.wrapper.util.permission.RxPermission;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout; import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshLayout;
import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView; import com.ruiwenliu.wrapper.weight.refresh.SimpleRefreshView;
import com.rv.component.utils.Cookie;
import com.rv.component.utils.DateUtils; import com.rv.component.utils.DateUtils;
import com.rv.component.utils.DisplayUtil; import com.rv.component.utils.DisplayUtil;
import com.rv.component.utils.LogUtil; import com.rv.component.utils.LogUtil;
...@@ -55,6 +58,7 @@ import com.rv.component.utils.ObservableScrollView; ...@@ -55,6 +58,7 @@ import com.rv.component.utils.ObservableScrollView;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.R2; import com.rv.home.R2;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.rv.home.rv.module.ui.main.home.adapter.HotCarTypeAdapter; import com.rv.home.rv.module.ui.main.home.adapter.HotCarTypeAdapter;
import com.rv.home.rv.module.ui.main.home.adapter.RVEnthusiastAdapter; import com.rv.home.rv.module.ui.main.home.adapter.RVEnthusiastAdapter;
import com.rv.home.rv.module.ui.main.home.adapter.RVTourListAdapter; import com.rv.home.rv.module.ui.main.home.adapter.RVTourListAdapter;
...@@ -868,10 +872,13 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa ...@@ -868,10 +872,13 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
} else if (id == R.id.ll_home_item_top) { } else if (id == R.id.ll_home_item_top) {
scrollview.fullScroll(View.FOCUS_UP); scrollview.fullScroll(View.FOCUS_UP);
} else if (id == R.id.iv_home_travel_server_image) { } else if (id == R.id.iv_home_travel_server_image) {
Intent intent = new Intent(Intent.ACTION_DIAL); if (isLogin()) {
Uri uri = Uri.parse("tel:" + "4000369369"); ComponentName name = new ComponentName(getActivity(), "com.rv.im.ConversationListActivity");
intent.setData(uri); Intent intent = new Intent();
startActivity(intent); intent.putExtra("login_user_id", Cookie.getStringValue(getContext(), SPConstance.USER_JSON_IMUSERID));
intent.setComponent(name);
startActivity(intent);
}
} else if (id == R.id.tv_home_car_rental_guide) { } else if (id == R.id.tv_home_car_rental_guide) {
//租车指南 //租车指南
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW) ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
...@@ -886,7 +893,18 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa ...@@ -886,7 +893,18 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
return; return;
} }
} }
/**
* 判断是否登录
*
* @return
*/
private boolean isLogin() {
if (TextUtils.isEmpty(OkGoUtil.getToken())) {
startActivity(LoginRvActivity.getIntent(_mActivity,0));
return false;
}
return true;
}
@Override @Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
......
...@@ -382,7 +382,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -382,7 +382,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
} }
} }
private void signOut() { public void signOut() {
ivAvatar.setBackgroundResource(0); ivAvatar.setBackgroundResource(0);
ivAvatar.setImageResource(R.drawable.common_icon_avatar_default); ivAvatar.setImageResource(R.drawable.common_icon_avatar_default);
tvNickname.setVisibility(View.GONE); tvNickname.setVisibility(View.GONE);
......
...@@ -16,6 +16,7 @@ import com.frame.base.bus.RxBus; ...@@ -16,6 +16,7 @@ import com.frame.base.bus.RxBus;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.other.TagAliasOperatorHelper; import com.ruiwenliu.wrapper.other.TagAliasOperatorHelper;
import com.ruiwenliu.wrapper.util.AppUtils;
import com.ruiwenliu.wrapper.util.UtilsManager; import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.Cookie; import com.rv.component.utils.Cookie;
...@@ -152,11 +153,7 @@ public class SettingActivity extends BaseStatusActivity<CommonPresenter> { ...@@ -152,11 +153,7 @@ public class SettingActivity extends BaseStatusActivity<CommonPresenter> {
tagAliasBean.isAliasAction = isAliasAction; tagAliasBean.isAliasAction = isAliasAction;
TagAliasOperatorHelper.getInstance().handleAction(getApplicationContext(), sequence, tagAliasBean); TagAliasOperatorHelper.getInstance().handleAction(getApplicationContext(), sequence, tagAliasBean);
UtilsManager.getInstance(mActivity).clearShareData("city_json"); AppUtils.logout(getApplicationContext());
UtilsManager.getInstance(mActivity).setShNull();
RvCache.getInstance(getApplicationContext()).clear();
Cookie.clear(getApplicationContext());
OkGoUtil.clearToken();
setResult(201); setResult(201);
showToast("退出成功!"); showToast("退出成功!");
finish(); finish();
......
package com.rv.im.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
public class ImConfigBean extends BaseBean {
private long currentTime ;
private ImConfig data ;
// private int resultCode;
public long getCurrentTime() {
return currentTime;
}
public void setCurrentTime(long currentTime) {
this.currentTime = currentTime;
}
public ImConfig getData() {
return data;
}
public void setData(ImConfig data) {
this.data = data;
}
}
include ':RvFrame' include ':RvFrame', ':plugin_im', ':jcvideoplayer-lib'
include ':RvClient' include ':RvClient'
include ':RvWrapper' include ':RvWrapper'
include ':module_home' include ':module_home'
......
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