Commit 05c0f69d authored by jianglx's avatar jianglx

添加 启动页 隐私权限温馨提示 与 注册页 的注册协议及隐私政策弹框

parent 5b95675d
...@@ -8,8 +8,8 @@ android { ...@@ -8,8 +8,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
flavorDimensions "default" flavorDimensions "default"
versionCode 156 versionCode 154
versionName "1.5.6" versionName "1.5.4"
multiDexEnabled true multiDexEnabled true
......
...@@ -30,6 +30,7 @@ import android.widget.TextView; ...@@ -30,6 +30,7 @@ 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.base.utils.tools.android.NetworkUtil;
import com.base.utils.ui.image.round.RoundImageView; import com.base.utils.ui.image.round.RoundImageView;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig; import com.frame.rv.config.RvFrameConfig;
...@@ -57,6 +58,7 @@ import com.ruiwenliu.wrapper.weight.TitleView; ...@@ -57,6 +58,7 @@ import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.camp.CampFragment; import com.rv.camp.CampFragment;
import com.rv.component.dialog.ConferenceEventDialog; import com.rv.component.dialog.ConferenceEventDialog;
import com.rv.component.utils.AppCookie; import com.rv.component.utils.AppCookie;
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;
...@@ -64,8 +66,11 @@ import com.rv.component.utils.RvCache; ...@@ -64,8 +66,11 @@ import com.rv.component.utils.RvCache;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
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.AppConfig;
import com.rv.im.ImService; import com.rv.im.ImService;
import com.rv.im.ImSetting; import com.rv.im.ImSetting;
import com.rv.im.bean.ImConfig;
import com.rv.im.bean.ImConfigBean;
import com.rv.im.call.AudioOrVideoController; import com.rv.im.call.AudioOrVideoController;
import com.rv.im.db.table.ChatMessage; import com.rv.im.db.table.ChatMessage;
import com.rv.im.view.TitleTextWindow; import com.rv.im.view.TitleTextWindow;
...@@ -169,7 +174,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL ...@@ -169,7 +174,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
@Override @Override
public boolean isBindService() { public boolean isBindService() {
return hasBindService; return hasBindService && !isImNoInit();
} }
@Override @Override
...@@ -253,6 +258,22 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL ...@@ -253,6 +258,22 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
checkToken(); checkToken();
getPreRentDays(); getPreRentDays();
initShareCode(); initShareCode();
checkImConfig();
}
/***********
* 检测im的配置
*/
private void checkImConfig() {
if (isImNoInit()) {
mPresenter.getData(8, AppConfig.CONFIG_URL, ImConfigBean.class, false);
}
}
private boolean isImNoInit() {
AppConfig appConfig = (AppConfig) RvCache.getInstance().get(CacheEnum.IM_CONFIG);
return appConfig == null;
} }
@Override @Override
...@@ -327,6 +348,16 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL ...@@ -327,6 +348,16 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
CodeInfoBean codeInfoBean = (CodeInfoBean) result; CodeInfoBean codeInfoBean = (CodeInfoBean) result;
showConferenceEvent(codeInfoBean); showConferenceEvent(codeInfoBean);
break; break;
case 8:
ImConfigBean imConfigBean = (ImConfigBean) result;
ImConfig config;
if (imConfigBean != null && imConfigBean.resultCode == 1 && imConfigBean.getData() != null) {
LogUtil.e("zq", "获取网络配置成功,使用服务端返回的配置并更新本地配置");
config = imConfigBean.getData();
AppConfig appConfig = AppConfig.initConfig(config);
RvCache.getInstance().save(appConfig, CacheEnum.IM_CONFIG);
}
break;
default: default:
break; break;
} }
......
package com.xxfc.rv;
import android.content.Context;
import android.support.annotation.NonNull;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.dialog.BaseDialog;
import com.rv.home.rv.module.ApiConfig;
public class PrivacyFirstTipsDialog extends BaseDialog {
public PrivacyFirstTipsDialog(@NonNull Context context) {
super(context);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
public PrivacyFirstTipsDialog(Context context, int themeResId) {
super(context, themeResId);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
@Override
public int getViewLayout() {
return R.layout.dialog_privacy_first_tips;
}
public static class Builder {
private Context mContext;
private Button btnDisagree, btnAgree;
private TextView txtContent;
private PrivacyFirstTipsDialog dialog;
private PrivacyListener mListener;
public Builder(Context context, PrivacyListener listener) {
mContext = context;
this.mListener = listener;
}
public interface DownloadListener {
void download();
}
public Builder show() {
final PrivacyFirstTipsDialog dialog = create();
dialog.show();
return this;
}
/**
* 创建定制的对话框
*/
public PrivacyFirstTipsDialog create() {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dialog = new PrivacyFirstTipsDialog(mContext, R.style.DialogActivityTheme);
// 获取对话框的布局
View layout = inflater.inflate(R.layout.dialog_privacy_first_tips, null);
// 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
txtContent = layout.findViewById(R.id.tv_tips_content) ;
this.btnDisagree = layout.findViewById(R.id.btn_disagree);
this.btnAgree = layout.findViewById(R.id.btn_agree);
this.btnAgree.setOnClickListener(v -> {
if (mListener != null) mListener.agree();
dialog.dismiss();
});
this.btnDisagree.setOnClickListener(v -> {
if (mListener != null) mListener.disAgree();
dialog.dismiss();
});
SpannableStringBuilder ssb = new SpannableStringBuilder();
String str = txtContent.getText().toString().trim();
ssb.append(str);
final int start = str.indexOf("《");//第一个出现的位
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
avoidHintColor(widget);
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", "隐私政策")
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 19)
.navigation();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.gray_FFB74B)); //设置文件颜色
// 去掉下划线
ds.setUnderlineText(false);
}
}, start, start + 6, 0);
final int end = str.lastIndexOf("《");//最后一个出现的位置
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
avoidHintColor(widget);
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", "隐私政策")
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 19)
.navigation();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.gray_FFB74B)); //设置文件颜色
// 去掉下划线
ds.setUnderlineText(false);
}
}, end, end + 6, 0);
txtContent.setMovementMethod(LinkMovementMethod.getInstance());
txtContent.setText(ssb, TextView.BufferType.SPANNABLE);
dialog.setCancelable(false);
dialog.setContentView(layout);
return dialog;
}
private void avoidHintColor(View view) {
if (view instanceof TextView)
((TextView) view).setHighlightColor(mContext.getResources().getColor(android.R.color.transparent));
}
}
public interface PrivacyListener {
void agree();
void disAgree();
}
}
package com.xxfc.rv;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import com.ruiwenliu.wrapper.dialog.BaseDialog;
public class PrivacySecondTipsDialog extends BaseDialog {
public PrivacySecondTipsDialog(@NonNull Context context) {
super(context);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
public PrivacySecondTipsDialog(Context context, int themeResId) {
super(context, themeResId);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
@Override
public int getViewLayout() {
return R.layout.dialog_privacy_second_tips;
}
public static class Builder {
private Context mContext;
private Button btnDisagree, btnWatchAgreement;
private TextView txtContent;
private PrivacySecondTipsDialog dialog;
private PrivacyListener mListener;
public Builder(Context context, PrivacyListener listener) {
mContext = context;
this.mListener = listener;
}
public interface DownloadListener {
void download();
}
public Builder show() {
final PrivacySecondTipsDialog dialog = create();
dialog.show();
return this;
}
/**
* 创建定制的对话框
*/
public PrivacySecondTipsDialog create() {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dialog = new PrivacySecondTipsDialog(mContext, R.style.DialogActivityTheme);
// 获取对话框的布局
View layout = inflater.inflate(R.layout.dialog_privacy_second_tips, null);
// 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
this.btnDisagree = layout.findViewById(R.id.btn_disagree);
this.btnWatchAgreement = layout.findViewById(R.id.btn_watch_agreement);
this.btnWatchAgreement.setOnClickListener(v -> {
if (mListener != null) mListener.watchAgreement();
dialog.dismiss();
});
this.btnDisagree.setOnClickListener(v -> {
if (mListener != null) mListener.disAgree();
dialog.dismiss();
});
dialog.setCancelable(false);
dialog.setContentView(layout);
return dialog;
}
}
public interface PrivacyListener {
void disAgree();
void watchAgreement();
}
}
package com.xxfc.rv;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import com.ruiwenliu.wrapper.dialog.BaseDialog;
public class PrivacyThirdTipsDialog extends BaseDialog {
public PrivacyThirdTipsDialog(@NonNull Context context) {
super(context);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
public PrivacyThirdTipsDialog(Context context, int themeResId) {
super(context, themeResId);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
@Override
public int getViewLayout() {
return R.layout.dialog_privacy_third_tips;
}
public static class Builder {
private Context mContext;
private Button btnExit, btnWatchAgreement;
private TextView txtContent;
private PrivacyThirdTipsDialog dialog;
private PrivacyListener mListener;
public Builder(Context context, PrivacyListener listener) {
mContext = context;
this.mListener = listener;
}
public interface DownloadListener {
void download();
}
public Builder show() {
final PrivacyThirdTipsDialog dialog = create();
dialog.show();
return this;
}
/**
* 创建定制的对话框
*/
public PrivacyThirdTipsDialog create() {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dialog = new PrivacyThirdTipsDialog(mContext, R.style.DialogActivityTheme);
// 获取对话框的布局
View layout = inflater.inflate(R.layout.dialog_privacy_third_tips, null);
// 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
this.btnExit = layout.findViewById(R.id.btn_exit);
this.btnWatchAgreement = layout.findViewById(R.id.btn_watch_agreement);
this.btnWatchAgreement.setOnClickListener(v -> {
if (mListener != null) mListener.watchAgreement();
dialog.dismiss();
});
this.btnExit.setOnClickListener(v -> {
if (mListener != null) mListener.exit();
dialog.dismiss();
});
dialog.setCancelable(false);
dialog.setContentView(layout);
return dialog;
}
}
public interface PrivacyListener {
void watchAgreement();
void exit();
}
}
package com.xxfc.rv; package com.xxfc.rv;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.base.utils.tools.android.NetworkUtil;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseActivity; import com.ruiwenliu.wrapper.base.BaseActivity;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.permission.RxPermission;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.AppCookie;
import com.rv.component.utils.CacheEnum; import com.rv.component.utils.CacheEnum;
import com.rv.component.utils.Cookie;
import com.rv.component.utils.LogUtil; import com.rv.component.utils.LogUtil;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.component.utils.RvCache; import com.rv.component.utils.RvCache;
import com.rv.im.AppConfig; import com.rv.im.AppConfig;
import com.rv.im.bean.ImConfig; import com.rv.im.bean.ImConfig;
import com.rv.im.bean.ImConfigBean; import com.rv.im.bean.ImConfigBean;
import com.sh.sdk.shareinstall.ShareInstall; import com.xxfc.rv.presenter.WelcomePresenter;
import com.yuyife.okgo.OkGoUtil;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;
import io.reactivex.Flowable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
public class WelcomeActivity extends BaseActivity<CommonPresenter> {
private static final int CODE_REQUEST_POISITION = 1000;
private Disposable mDisposable = null;
private boolean isImInitOk = false;
private boolean isInterval = false; public class WelcomeActivity extends BaseActivity<WelcomePresenter> {
@Override @Override
public void onShowResult(int requestType, BaseBean result) { public void onShowResult(int requestType, BaseBean result) {
...@@ -56,13 +25,9 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> { ...@@ -56,13 +25,9 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
ImConfig config; ImConfig config;
if (bean != null && bean.resultCode == 1 && ((ImConfigBean) result).getData() != null) { if (bean != null && bean.resultCode == 1 && ((ImConfigBean) result).getData() != null) {
LogUtil.e("zq", "获取网络配置成功,使用服务端返回的配置并更新本地配置"); LogUtil.e("zq", "获取网络配置成功,使用服务端返回的配置并更新本地配置");
isImInitOk = true;
config = bean.getData(); config = bean.getData();
AppConfig appConfig = AppConfig.initConfig(config); AppConfig appConfig = AppConfig.initConfig(config);
RvCache.getInstance().save(appConfig, CacheEnum.IM_CONFIG); RvCache.getInstance().save(appConfig, CacheEnum.IM_CONFIG);
if (isInterval && !isFinishing()) {
go();
}
} }
} }
} }
...@@ -75,114 +40,13 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> { ...@@ -75,114 +40,13 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
showTitle(false);//隐藏菜单栏 showTitle(false);//隐藏菜单栏
permissionProcess();
}
private void init() {
AppConfig appConfig = (AppConfig) RvCache.getInstance().get(CacheEnum.IM_CONFIG);
if (appConfig == null) {
if (!NetworkUtil.isNetworkAvailable(getApplicationContext())) {
showToast("网络异常,初始化失败,请退出重试", 1);
}
} else {
isImInitOk = true;
}
interval();
LogUtil.d("start");
}
/**
* 定位权限处理
*/
@SuppressLint("CheckResult")
private void permissionProcess() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
new RxPermission(mActivity).request(
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
).subscribe(aBoolean -> {
if (aBoolean == true) {
init();
} else {
new AlertDialog.Builder(this).setTitle("需要定位权限")
.setMessage("位置权限已关闭,开启以便滴房车正常使用")
.setNegativeButton("取消", (dialogInterface, i) -> {
finish();
dialogInterface.dismiss();
})
.setPositiveButton("设置", (dialogInterface, i) -> {
Intent in = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
.setData(Uri.fromParts("package", getPackageName(), null));
startActivityForResult(in, CODE_REQUEST_POISITION);
dialogInterface.dismiss();
}).setCancelable(false).show();
}
});
} else {
init();
}
} }
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
mPresenter.saveOnclick("8", ""); mPresenter.saveOnclick("8", "");
getImConfig(); mPresenter.privacyConsent();
} mPresenter.getImConfig();
private void getImConfig() {
mPresenter.getData(0, AppConfig.CONFIG_URL, ImConfigBean.class, false);
}
@Override
public void onDestroy() {
super.onDestroy();
stopCarousel();
}
/**
* 计时器
*/
private void interval() {
mDisposable = Flowable.interval(1, TimeUnit.SECONDS)
.doOnNext(aLong -> {
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
isInterval = true;
try {
String token = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_TOKEN, "");
String tokenTime = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_TOKE_TIME, "");
if (!TextUtils.isEmpty(token)) {
OkGoUtil.setToken(token, tokenTime);
}
} catch (Exception e) {
e.printStackTrace();
}
if (isImInitOk) {
go();
}
});
}
/**
* 停止计时
*/
public void stopCarousel() {
if (mDisposable != null && !mDisposable.isDisposed()) {
mDisposable.dispose();
}
}
private void go() {
if (AppCookie.getBooleanValue("first_open", true)) {
AppCookie.save("first_open", false);
startActivity(GuideActivity.getIntent(mActivity));
} else {
startActivity(MainActivity.getIntent(mActivity));
}
mDisposable.dispose();
finish();
} }
@Override @Override
...@@ -190,16 +54,14 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> { ...@@ -190,16 +54,14 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 21) { if (Build.VERSION.SDK_INT >= 21) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
} }
} }
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CODE_REQUEST_POISITION) { if (requestCode == mPresenter.CODE_REQUEST_POISITION) {
permissionProcess(); mPresenter.permissionProcess();
} }
} }
} }
package com.xxfc.rv.presenter;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.ruiwenliu.wrapper.util.permission.RxPermission;
import com.rv.component.utils.AppCookie;
import com.rv.component.utils.Cookie;
import com.rv.im.AppConfig;
import com.rv.im.bean.ImConfigBean;
import com.xxfc.rv.GuideActivity;
import com.xxfc.rv.MainActivity;
import com.xxfc.rv.PrivacySecondTipsDialog;
import com.xxfc.rv.PrivacyThirdTipsDialog;
import com.xxfc.rv.PrivacyFirstTipsDialog;
import com.yuyife.okgo.OkGoUtil;
import java.util.concurrent.TimeUnit;
import io.reactivex.Flowable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
public class WelcomePresenter extends CommonPresenter {
public static final int CODE_REQUEST_POISITION = 1000;
private Disposable mDisposable = null;
private Activity mActivity;
private PrivacyFirstTipsDialog privacyfirstTipsDialog;
private PrivacySecondTipsDialog privacySecondTipsDialog;
private PrivacyThirdTipsDialog privacyThirdTipsDialog;
/*****
* 同意隐私
*/
public void privacyConsent() {
mActivity = (Activity) getPresenterContext();
if (!AppCookie.getBooleanValue(AppCookie.KEY_AGREE_PRIVACY, false)) {
if (privacyfirstTipsDialog == null) {
privacyfirstTipsDialog = new PrivacyFirstTipsDialog.Builder(mActivity, privacyListener).create();
}
privacyfirstTipsDialog.show();
} else {
permissionProcess();
}
}
/*********
*
* 获取im的配置
*
*/
public void getImConfig() {
getData(0, AppConfig.CONFIG_URL, ImConfigBean.class, false);
}
/**
* 定位权限处理
*/
@SuppressLint("CheckResult")
public void permissionProcess() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
new RxPermission((Activity) getPresenterContext()).request(
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
).subscribe(aBoolean -> {
if (aBoolean == true) {
interval();
} else {
new AlertDialog.Builder(mActivity).setTitle("需要定位权限")
.setMessage("位置权限已关闭,开启以便滴房车正常使用")
.setNegativeButton("取消", (dialogInterface, i) -> {
mActivity.finish();
dialogInterface.dismiss();
})
.setPositiveButton("设置", (dialogInterface, i) -> {
Intent in = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
.setData(Uri.fromParts("package", getPresenterContext().getPackageName(), null));
mActivity.startActivityForResult(in, CODE_REQUEST_POISITION);
dialogInterface.dismiss();
}).setCancelable(false).show();
}
});
} else {
interval();
}
}
/**
* 计时器
*/
private void interval() {
mDisposable = Flowable.interval(1, TimeUnit.SECONDS)
.doOnNext(aLong -> {
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
try {
String token = Cookie.getStringValue(null, SPConstance.USER_JSON_TOKEN, "");
String tokenTime = Cookie.getStringValue(null, SPConstance.USER_JSON_TOKE_TIME, "");
if (!TextUtils.isEmpty(token)) {
OkGoUtil.setToken(token, tokenTime);
}
} catch (Exception e) {
e.printStackTrace();
}
go();
});
}
private void go() {
if (AppCookie.getBooleanValue("first_open", true)) {
AppCookie.save("first_open", false);
mActivity.startActivity(GuideActivity.getIntent(mActivity));
} else {
mActivity.startActivity(MainActivity.getIntent(mActivity));
}
mActivity.finish();
}
@Override
public void detachView() {
super.detachView();
stopCarousel();
}
/**
* 停止计时
*/
public void stopCarousel() {
if (mDisposable != null && !mDisposable.isDisposed()) {
mDisposable.dispose();
}
}
private PrivacyFirstTipsDialog.PrivacyListener privacyListener = new PrivacyFirstTipsDialog.PrivacyListener() {
@Override
public void agree() {
AppCookie.save(AppCookie.KEY_AGREE_PRIVACY, true);
permissionProcess();
}
@Override
public void disAgree() {
if (privacySecondTipsDialog == null) {
privacySecondTipsDialog = new PrivacySecondTipsDialog.Builder(mActivity, privacyListener1).create();
}
privacySecondTipsDialog.show();
}
};
private PrivacySecondTipsDialog.PrivacyListener privacyListener1 = new PrivacySecondTipsDialog.PrivacyListener() {
@Override
public void disAgree() {
if (privacyThirdTipsDialog == null) {
privacyThirdTipsDialog = new PrivacyThirdTipsDialog.Builder(mActivity, privacyListener2).create();
}
privacyThirdTipsDialog.show();
}
@Override
public void watchAgreement() {
privacyfirstTipsDialog.show();
}
};
private PrivacyThirdTipsDialog.PrivacyListener privacyListener2 = new PrivacyThirdTipsDialog.PrivacyListener() {
@Override
public void watchAgreement() {
privacyfirstTipsDialog.show();
}
@Override
public void exit() {
mActivity.finish();
}
};
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginRight="@dimen/size_30"
android:background="@color/white"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_marginLeft="@dimen/size_20"
android:layout_marginRight="@dimen/size_20"
android:layout_marginTop="@dimen/size_20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="温馨提示"
android:textColor="#323232"
android:textSize="@dimen/sp_16" />
<TextView
android:layout_marginLeft="@dimen/size_20"
android:layout_marginRight="@dimen/size_20"
android:id="@+id/tv_tips_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="@dimen/size_20"
android:layout_weight="1"
android:gravity="left"
android:letterSpacing="0.1"
android:text=" 感谢您信任并使用滴房车!我们依据最新的法律法规、监管政策要求及业务员实际情况,更新了《隐私政策》(点击了解更新后的详细内容),特此向您推送本提示。\n\n
请您务必仔细阅读并透彻理解相关条款内容,在确定充分理解并同意后使用滴房车相关产品或内容。点击同意即代表您已阅读并同意《隐私政策》,如果您不同意,将可能影响使用滴房车的产品和服务。\n\n
我们将按照法律法规要求,采取相应安全保护措施,尽力保护您的个人信息安全可控。"
android:singleLine="false"
android:textColor="#666666"
android:textSize="14sp" />
<View
android:layout_marginTop="@dimen/dp_40"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/colorYellow"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:orientation="horizontal">
<Button
android:textSize="@dimen/size_16"
android:background="@color/white"
android:text="不同意"
android:gravity="center"
android:id="@+id/btn_disagree"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent" />
<Button
android:textSize="@dimen/size_16"
android:textColor="@color/white"
android:text="同意"
android:background="#FF9900"
android:gravity="center"
android:id="@+id/btn_agree"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginRight="@dimen/size_30"
android:background="@color/white"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_20"
android:layout_marginRight="@dimen/size_20"
android:gravity="center"
android:text="您需同意本隐私政策才能使用滴房车"
android:textColor="#323232"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_tips_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_20"
android:layout_marginRight="@dimen/size_20"
android:layout_weight="1"
android:gravity="left"
android:singleLine="false"
android:text="若您不同意改隐私协议,非常遗憾我们将无法为您服务"
android:textColor="#666666"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="@dimen/dp_40"
android:background="@color/colorYellow" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:orientation="horizontal">
<Button
android:id="@+id/btn_disagree"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:text="仍不同意"
android:textSize="@dimen/size_16" />
<Button
android:id="@+id/btn_watch_agreement"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#FF9900"
android:gravity="center"
android:text="查看协议"
android:textColor="@color/white"
android:textSize="@dimen/size_16" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginRight="@dimen/size_30"
android:background="@color/white"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/tv_tips_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_20"
android:layout_marginRight="@dimen/size_20"
android:layout_weight="1"
android:gravity="center"
android:singleLine="false"
android:text="亲,要不再看看"
android:textColor="#666666"
android:textSize="@dimen/size_16" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="@dimen/size_30"
android:background="@color/colorYellow" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:orientation="horizontal">
<Button
android:id="@+id/btn_exit"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:gravity="center"
android:text="退出应用"
android:textSize="@dimen/size_16" />
<Button
android:id="@+id/btn_watch_agreement"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#FF9900"
android:gravity="center"
android:text="查看协议"
android:textColor="@color/white"
android:textSize="@dimen/size_16" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
...@@ -47,8 +47,8 @@ public abstract class BaseActivity<P extends MvpPresenter> extends BaseWrapperAc ...@@ -47,8 +47,8 @@ public abstract class BaseActivity<P extends MvpPresenter> extends BaseWrapperAc
mLoadingDialog = createLoadingDialog(); mLoadingDialog = createLoadingDialog();
if (NetworkUtil.isNetworkAvailable(mActivity)) { if (NetworkUtil.isNetworkAvailable(mActivity)) {
isLoadData = true; isLoadData = true;
loadData(savedInstanceState, getIntent());
} }
loadData(savedInstanceState, getIntent());
NetWorkReceiver.getInstance().register(this); NetWorkReceiver.getInstance().register(this);
} }
......
...@@ -53,15 +53,12 @@ public abstract class WrapperPresenter<V extends BaseView> implements Presenter< ...@@ -53,15 +53,12 @@ public abstract class WrapperPresenter<V extends BaseView> implements Presenter<
@Override @Override
public void detachView() { public void detachView() {
if (viewReference != null) { if (viewReference != null) {
viewReference.clear(); viewReference.clear();
viewReference = null; viewReference = null;
} }
} }
public Context getPresenterContext() { public Context getPresenterContext() {
return getView() instanceof Context ? (Context) getView() : ((Fragment) getView()).getContext(); return getView() instanceof Context ? (Context) getView() : ((Fragment) getView()).getContext();
} }
......
...@@ -65,5 +65,22 @@ ...@@ -65,5 +65,22 @@
<!--<item name="android:windowIsTranslucent">false</item>--> <!--<item name="android:windowIsTranslucent">false</item>-->
</style> </style>
<style name="DialogActivityTheme" parent="Theme.AppCompat.Dialog">
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<!-- 模糊 -->
<item name="android:windowCloseOnTouchOutside">false</item>
<!-- 重点,去掉标题 -->
<item name="windowNoTitle">true</item>
</style>
</resources> </resources>
...@@ -16,6 +16,8 @@ public class AppCookie { ...@@ -16,6 +16,8 @@ public class AppCookie {
public static final String OFFLINE_TIME = "offline_time"; public static final String OFFLINE_TIME = "offline_time";
public static final String KEY_AGREE_PRIVACY = "key_agree_privacy" ; // 同意隐私权限
private static SharedPreferences preferences; private static SharedPreferences preferences;
private static WeakReference<Context> weakReference = null; private static WeakReference<Context> weakReference = null;
......
package com.rv.home.rv.module.ui.login;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.support.annotation.NonNull;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.StyleSpan;
import android.text.style.UnderlineSpan;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.frame.base.url.Constance;
import com.ruiwenliu.wrapper.dialog.BaseDialog;
import com.rv.home.R;
import com.rv.home.rv.module.ApiConfig;
public class PrivacyTipsDialog extends BaseDialog {
public PrivacyTipsDialog(@NonNull Context context) {
super(context);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
public PrivacyTipsDialog(Context context, int themeResId) {
super(context, themeResId);
setDialogParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
}
@Override
public int getViewLayout() {
return R.layout.dialog_privacy_tips;
}
public static class Builder {
private Context mContext;
private Button btnDisagree, btnAgree;
private TextView txtContent;
private PrivacyTipsDialog dialog;
private PrivacyListener mListener;
public Builder(Context context, PrivacyListener listener) {
mContext = context;
this.mListener = listener;
}
public interface DownloadListener {
void download();
}
public Builder show() {
final PrivacyTipsDialog dialog = create();
dialog.show();
return this;
}
/**
* 创建定制的对话框
*/
public PrivacyTipsDialog create() {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dialog = new PrivacyTipsDialog(mContext, R.style.DialogActivityTheme);
// 获取对话框的布局
View layout = inflater.inflate(R.layout.dialog_privacy_tips, null);
// 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
txtContent = layout.findViewById(R.id.tv_tips_content) ;
this.btnDisagree = layout.findViewById(R.id.btn_disagree);
this.btnAgree = layout.findViewById(R.id.btn_agree);
this.btnAgree.setOnClickListener(v -> {
if (mListener != null) mListener.agree();
dialog.dismiss();
});
this.btnDisagree.setOnClickListener(v -> {
if (mListener != null) mListener.disAgree();
dialog.dismiss();
});
setTextColorAndAction();
dialog.setCancelable(false);
dialog.setContentView(layout);
return dialog;
}
private void avoidHintColor(View view) {
if (view instanceof TextView)
((TextView) view).setHighlightColor(mContext.getResources().getColor(android.R.color.transparent));
}
private void setTextColorAndAction(){
SpannableStringBuilder ssb = new SpannableStringBuilder();
String str = txtContent.getText().toString().trim();
ssb.append(str);
ssb.setSpan(new UnderlineSpan(),str.indexOf("如果您不同意以上"),str.indexOf("您停止注册后将"),0);
ssb.setSpan(new StyleSpan(Typeface.BOLD),str.indexOf("如果您不同意以上"),str.indexOf("您停止注册后将"),0);
ssb.setSpan(new UnderlineSpan(),str.indexOf("请您务必仔细阅读"),str.indexOf("(尤其是以粗"),0);
ssb.setSpan(new StyleSpan(Typeface.BOLD),str.indexOf("请您务必仔细阅读"),str.indexOf("(尤其是以粗"),0);
final int startUserAgreement = str.indexOf("《用户协议》");//第一个出现的位置
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
avoidHintColor(widget);
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", "用户协议")
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 15)
.navigation();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.gray_FFB74B)); //设置文件颜色
// 去掉下划线
ds.setUnderlineText(false);
}
}, startUserAgreement, startUserAgreement + 6, 0);
final int endUserAgreement = str.lastIndexOf("《用户协议》");//最后一个出现的位置
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
avoidHintColor(widget);
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", "用户协议")
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 15)
.navigation();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.gray_FFB74B)); //设置文件颜色
// 去掉下划线
ds.setUnderlineText(false);
}
}, endUserAgreement, endUserAgreement + 6, 0);
final int startPrivacyAgreement = str.indexOf("《隐私政策》");//第一个出现的位置
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
avoidHintColor(widget);
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", "隐私政策")
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 19)
.navigation();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.gray_FFB74B)); //设置文件颜色
// 去掉下划线
ds.setUnderlineText(false);
}
}, startPrivacyAgreement, startPrivacyAgreement + 6, 0);
final int endPrivacyAgreement = str.lastIndexOf("《隐私政策》");//最后一个出现的位置
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
avoidHintColor(widget);
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title", "隐私政策")
.withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type", 19)
.navigation();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.gray_FFB74B)); //设置文件颜色
// 去掉下划线
ds.setUnderlineText(false);
}
}, endPrivacyAgreement, endPrivacyAgreement + 6, 0);
txtContent.setMovementMethod(LinkMovementMethod.getInstance());
txtContent.setText(ssb, TextView.BufferType.SPANNABLE);
}
}
public interface PrivacyListener {
void agree();
void disAgree();
}
}
...@@ -69,7 +69,6 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> { ...@@ -69,7 +69,6 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
@BindView(R2.id.tv_agreement) @BindView(R2.id.tv_agreement)
TextView tvAgreement; TextView tvAgreement;
private Disposable mDisposable; private Disposable mDisposable;
private boolean pwdShow;//密码 private boolean pwdShow;//密码
private boolean confirmShow;//确认密码 private boolean confirmShow;//确认密码
...@@ -114,6 +113,23 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> { ...@@ -114,6 +113,23 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
editListener(etPwd); editListener(etPwd);
editListener(etInviteCode); editListener(etInviteCode);
initData(); initData();
privacyAgree();
}
private void privacyAgree() {
new PrivacyTipsDialog.Builder(this, new PrivacyTipsDialog.PrivacyListener() {
@Override
public void agree() {
cbAnnotations.setChecked(true);
}
@Override
public void disAgree() {
finish();
}
}).show();
} }
private void initData() { private void initData() {
......
...@@ -58,12 +58,14 @@ import com.ruiwenliu.wrapper.util.permission.RxPermission; ...@@ -58,12 +58,14 @@ import com.ruiwenliu.wrapper.util.permission.RxPermission;
import com.ruiwenliu.wrapper.weight.refresh.IFooterWrapper; import com.ruiwenliu.wrapper.weight.refresh.IFooterWrapper;
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.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.DisplayUtil; import com.rv.component.utils.DisplayUtil;
import com.rv.component.utils.LogUtil; import com.rv.component.utils.LogUtil;
import com.rv.component.utils.MyUtils; import com.rv.component.utils.MyUtils;
import com.rv.component.utils.ObservableScrollView; import com.rv.component.utils.ObservableScrollView;
import com.rv.component.utils.RvCache;
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;
...@@ -251,8 +253,6 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa ...@@ -251,8 +253,6 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
private int countPage; private int countPage;
private int mPage; private int mPage;
private boolean hasNewMessage;
public static HomeFragment getInstance(int type) { public static HomeFragment getInstance(int type) {
Bundle bundl = new Bundle(); Bundle bundl = new Bundle();
bundl.putInt("type", type); bundl.putInt("type", type);
...@@ -963,16 +963,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa ...@@ -963,16 +963,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
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) {
if (isLogin()) { if (isLogin()) {
hasNewMessage = false;
// if (llItemTop.getVisibility() != View.VISIBLE) {
// travelServerImage.setImageResource(R.drawable.rv_rentingcar_icon_service_white);
// } else {
// travelServerImage.setImageResource(R.drawable.rentingcar_icon_service_orangeorange);
// }
if (_mActivity instanceof ImInitListenter && !((ImInitListenter) _mActivity).isBindService()) { if (_mActivity instanceof ImInitListenter && !((ImInitListenter) _mActivity).isBindService()) {
showToast("Im初始化中..."); showToast("Im初始化中...");
return; return;
} }
ComponentName name = new ComponentName(getActivity(), "com.rv.im.CustomerListActivity"); ComponentName name = new ComponentName(getActivity(), "com.rv.im.CustomerListActivity");
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra("login_user_id", Cookie.getStringValue(getContext(), SPConstance.USER_JSON_IMUSERID)); intent.putExtra("login_user_id", Cookie.getStringValue(getContext(), SPConstance.USER_JSON_IMUSERID));
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_25"
android:layout_marginBottom="@dimen/size_25"
android:layout_marginLeft="@dimen/size_25"
android:layout_marginRight="@dimen/size_25"
android:background="@color/white"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_marginLeft="@dimen/size_15"
android:layout_marginRight="@dimen/size_15"
android:layout_marginTop="@dimen/size_20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="注册协议及隐私政策"
android:textColor="#323232"
android:textSize="@dimen/sp_16" />
<TextView
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:id="@+id/tv_tips_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="@dimen/size_20"
android:layout_weight="1"
android:gravity="left"
android:text=" 在您注册成为滴房车用户的过程中,您需要完成我们的注册流程并通过点击同意的形式在线签署以下协议,请您务必仔细阅读、充分理解协议中的条款内容后再点击同意(尤其是以粗体并下划线标识的条款,因为这些条款可能会明确您应履行的义务或对您的权利有所限制):\n\n
《用户协议》\n
《隐私政策》\n\n
【请您注意】如果您不同意以上协议或其中任何条款约定、请您停止注册。您停止注册后将仅可以浏览我们的商品信息但无法享受我们产品或服务。如您按照注册流程提示填写信息、阅读并点击同意上述协议且完成全部注册流程后,即表示您已充分阅读、理解并接受协议的全部内容;并表明您也同意滴房车可以依据以上的隐私政策内容来处理您的个人信息。如您对以上协议内容有任何疑问,您可随时与滴房车客服联系。
\n\n\n
点击同意即表示您已阅读并同意《用户协议》《隐私政策》"
android:singleLine="false"
android:textColor="#666666"
android:textSize="14sp" />
<View
android:layout_marginTop="@dimen/size_20"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/colorYellow"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:orientation="horizontal">
<Button
android:textSize="@dimen/size_16"
android:background="@color/white"
android:text="不同意"
android:gravity="center"
android:id="@+id/btn_disagree"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent" />
<Button
android:textSize="@dimen/size_16"
android:textColor="@color/white"
android:text="同意"
android:background="#FF9900"
android:gravity="center"
android:id="@+id/btn_agree"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DialogActivityTheme" parent="Theme.AppCompat.Dialog">
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<!-- 模糊 -->
<item name="android:windowCloseOnTouchOutside">false</item>
<!-- 重点,去掉标题 -->
<item name="windowNoTitle">true</item>
</style>
</resources>
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