隐私合规

This commit is contained in:
jinyuer
2021-12-13 15:09:32 +08:00
parent 5234933749
commit d23b9c54f3
9 changed files with 359 additions and 65 deletions

4
.idea/misc.xml generated
View File

@@ -8,6 +8,10 @@
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/activity_login.xml" value="0.3614583333333333" />
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/activity_logo.xml" value="0.3614583333333333" />
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/activity_main.xml" value="0.3614583333333333" />
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/dialog_initmate.xml" value="0.3614583333333333" />
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/fragment_discovery.xml" value="0.3614583333333333" />
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/fragment_main.xml" value="0.3614583333333333" />
<entry key="..\:/AndroidStudioProject/HouseProperty/app/src/main/res/layout/item_discovery.xml" value="0.3614583333333333" />

View File

@@ -2,12 +2,18 @@ package com.sl.house_property;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.NonNull;
import com.cutil.RegexUtils;
import com.google.gson.Gson;
import com.google.gson.internal.LinkedTreeMap;
@@ -71,6 +77,66 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
// mDataBinding.lyfuwu.setVisibility(View.VISIBLE);
// mDataBinding.lyyinsi.setVisibility(View.VISIBLE);
// }
String str = "我已阅读并同意《隐私政策》和《用户协议";
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(str);
int v1 = str.indexOf("");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
if (mDataBinding.tvYs.isSelected()) {
mDataBinding.tvYs.setSelected(false);
Drawable drawable = getResources().getDrawable(R.mipmap.icon_publish_selected2);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
mDataBinding.tvYs.setCompoundDrawables(drawable, null, null, null);
} else {
mDataBinding.tvYs.setSelected(true);
Drawable drawable = getResources().getDrawable(R.mipmap.icon_publish_selected);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
mDataBinding.tvYs.setCompoundDrawables(drawable, null, null, null);
}
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
}, 0, v1, 0);
int start = str.indexOf("");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
//隐私政策
WebActivitytwo.runActivity(LoginActivity.this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=19");
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(getResources().getColor(R.color.red));
ds.setUnderlineText(false);
}
}, start, start + 6, 0);
int end = str.lastIndexOf("");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
//用户协议
WebActivitytwo.runActivity(LoginActivity.this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=1");
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(getResources().getColor(R.color.red));
ds.setUnderlineText(false);
}
}, end, end + 6, 0);
}
@Override
@@ -85,6 +151,11 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
startActivity(intent2);
break;
case R.id.logintext:
if (!mDataBinding.tvYs.isSelected()) {
setToast("请先阅读并勾选同意用户协议和隐私政策");
return;
}
String phone = mDataBinding.phone.getText().toString().trim();
String password = mDataBinding.pwd.getText().toString().trim();
if (phone.length() < 1) {
@@ -176,7 +247,6 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
getpammar(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), 0);
break;
}
@@ -249,6 +319,7 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
addSubscription(subscription);
}
/**
* 用户协议
*
@@ -259,6 +330,7 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
// startActivity(intent);
WebActivitytwo.runActivity(this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=1");
}
/**
* 隐私政策
*

View File

@@ -1,14 +1,28 @@
package com.sl.house_property;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
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.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.cutil.ScreenUtils;
import com.sl.house_property.f2.FeeActivity;
import com.tencent.bugly.Bugly;
import cn.jpush.android.api.JPushInterface;
import tools.Config;
@@ -28,6 +42,8 @@ public class LogoActivity extends Activity{
tipLP.topMargin = (int) (screenHigh*0.28);
tipImage.setLayoutParams(tipLP);
if (getSharedPreferences("first", Context.MODE_PRIVATE).getInt("first", 0) == 1) {
imaloder.postDelayed(new Runnable() {
@Override
public void run() {
@@ -43,6 +59,90 @@ public class LogoActivity extends Activity{
}
},delaytime);
} else {
startDialog();
}
}
private void startDialog() {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.show();
alertDialog.setCancelable(false);
Window window = alertDialog.getWindow();
if (window != null) {
window.setContentView(R.layout.dialog_initmate);
window.setGravity(Gravity.CENTER);
TextView tvContent = window.findViewById(R.id.tv_content);
TextView tvCancel = window.findViewById(R.id.tv_cancel);
TextView tvAgree = window.findViewById(R.id.tv_agree);
String str =
" 感谢您对沃克智慧社区的支持!我们非常重视您的个人信息和隐私保护。为了更好地保障您的个人权益,在您使用我们的产品前,请务必审慎阅读《隐私政策》和《用户协议》内的所有条款。如您同意以上协议内容,请点击“同意”,开始使用我们的产品和服务!";
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(str);
int start = str.indexOf("");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
//隐私政策
WebActivitytwo.runActivity(LogoActivity.this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=19");
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(getResources().getColor(R.color.red));
ds.setUnderlineText(false);
}
}, start, start + 6, 0);
int end = str.lastIndexOf("");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
//用户协议
WebActivitytwo.runActivity(LogoActivity.this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=1");
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(getResources().getColor(R.color.red));
ds.setUnderlineText(false);
}
}, end, end + 6, 0);
tvContent.setMovementMethod(LinkMovementMethod.getInstance());
tvContent.setText(ssb, TextView.BufferType.SPANNABLE);
tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.cancel();
finish();
}
});
tvAgree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getSharedPreferences("first", Context.MODE_PRIVATE).edit().putInt("first", 1).apply();
JPushInterface.init(getApplication());
Bugly.init(getApplication(),"d45325664f",false);
alertDialog.cancel();
finish();
if( (Config.getInstance(LogoActivity.this).getUser()==null)){
Intent intent =new Intent(LogoActivity.this,LoginActivity.class);
startActivity(intent);
}else {
startActivity( new Intent(LogoActivity.this, MainTabActivity.class));
}
}
});
}
}
}

View File

@@ -1,25 +1,41 @@
package com.sl.house_property;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.ViewPager;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.GestureDetector;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
import com.tencent.bugly.Bugly;
import java.util.ArrayList;
import adapter.StartViewpagerAdapter;
import cn.jpush.android.api.JPushInterface;
import tools.Config;
import utils.ConfigTitiles;
import utils.SetBigMap;
/*gradlew compileDebug --stacktrace*/
/*gradlew compileDebugSources --stacktrace -info*/
public class MainActivity extends Activity {
@@ -31,22 +47,28 @@ public class MainActivity extends Activity {
private ImageView point1;
private ImageView point2;
// private ImageView point3;
public double getPagerScroCHaged() {
return pagerScroCHaged;}
return pagerScroCHaged;
}
public void setPagerScroCHaged(double pagerScroCHaged) {
this.pagerScroCHaged = pagerScroCHaged;
}
private double pagerScroCHaged = 0.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("Main", "main");
onceOrNot();
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -62,6 +84,7 @@ public class MainActivity extends Activity {
}
}
};
private void onceOrNot() {
// TODO Auto-generated method stub
int once = Config.getInstance(MainActivity.this).getInt(ConfigTitiles.ONCEORNOT, 0);
@@ -76,6 +99,7 @@ public class MainActivity extends Activity {
}
}
private void onceStart() {
// TODO Auto-generated method stub
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
@@ -213,10 +237,14 @@ public class MainActivity extends Activity {
startActivity(intent);
finish();
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {//分发事件
super.dispatchTouchEvent(ev);
//productGestureDetector 是 GestureDetector对象
return mGestureDetector.onTouchEvent(ev);
}
}

View File

@@ -48,6 +48,7 @@ public class MyApplication extends Application{
public static Context context;
protected static MyApplication instance;
public JCVideoPlayerStandard VideoPlaying;
/* private HttpNet httpNet;
public static Handler getTheErrorHandler;
public static boolean mainonce;
@@ -57,6 +58,7 @@ public class MyApplication extends Application{
return context;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
@@ -66,6 +68,7 @@ public class MyApplication extends Application{
public static MyApplication getApp() {
return instance;
}
public void existActivitys() {
for (Activity act : activityList) {
act.finish();
@@ -85,12 +88,15 @@ public class MyApplication extends Application{
super.onCreate();
instance = this;
initOkGo();
JPushInterface.init(this);
JPushInterface.setDebugMode(true);
//
// CrashHandler crashHandler = CrashHandler.getInstance();
// crashHandler.init(this);
if (getSharedPreferences("first", Context.MODE_PRIVATE).getInt("first", 0) == 1) {
JPushInterface.init(this);
JPushInterface.setDebugMode(false);
Bugly.init(this, "d45325664f", false);
}
// System.setProperty("http.proxyHost", "haotian.hoheng.cn");
// System.setProperty("http.proxyPort", "8080");
@@ -107,7 +113,6 @@ public class MyApplication extends Application{
public static final String KEY_EXTRAS = "extras";
public void exit() {
for (Activity act : activityList) {
act.finish();
@@ -116,18 +121,6 @@ public class MyApplication extends Application{
}
private void initOkGo() {
//---------这里给出的是示例代码,告诉你可以这么传,实际使用的时候,根据需要传,不需要就不传-------------//
HttpHeaders headers = new HttpHeaders();

View File

@@ -97,14 +97,24 @@
android:background="@null"
android:hint="请输入密码" />
</LinearLayout>
<TextView
android:id="@+id/tv_ys"
android:layout_marginTop="16dp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="我已阅读并同意隐私政策和用户协议"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:drawableLeft="@mipmap/icon_publish_selected2"
android:layout_marginLeft="20dip"
/>
<TextView
android:id="@+id/logintext"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="45dip"
android:layout_marginTop="20dip"
android:background="@drawable/selector_common_btn"
android:gravity="center"
android:text="登录"

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@color/background_color_white"
android:layout_height="wrap_content">
<LinearLayout
android:background="@color/background_color_white"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="25dp"
android:padding="5dp"
android:text="用户协议与隐私权限说明"
android:textColor="#282828"
android:textSize="20sp"
android:textStyle="bold" />
<!-- <ScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:paddingTop="20dp"-->
<!-- android:paddingBottom="20dp">-->
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:lineSpacingMultiplier="1.2"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:textColor="#282828"
android:textSize="16sp" />
<!-- </ScrollView>-->
<View
android:id="@+id/view_1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#E7E7E7" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="12dp"
android:text="拒绝"
android:layout_gravity="center"
android:textColor="@color/text2"
android:textStyle="bold" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#E7E7E7" />
<TextView
android:id="@+id/tv_agree"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/view_1"
android:layout_toRightOf="@+id/view_2"
android:layout_weight="1"
android:gravity="center"
android:padding="12dp"
android:text="同 意"
android:layout_gravity="center"
android:textColor="@color/text2"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 B