Переглянути джерело

1.完成首次安装及提示协议

wsad5123 5 роки тому
батько
коміт
7a66e36fc5

+ 40 - 21
app/src/main/java/com/tongyu/luck/happywork/ui/activity/StartActivity.java

@@ -15,6 +15,7 @@ import com.tongyu.luck.happywork.ui.activity.bclient.BMainActivity;
 import com.tongyu.luck.happywork.ui.activity.cclient.CMainActivity;
 import com.tongyu.luck.happywork.ui.base.BaseActivity;
 import com.tongyu.luck.happywork.ui.base.IPresenter;
+import com.tongyu.luck.happywork.ui.widget.dialog.TipsDialog;
 
 import java.util.concurrent.TimeUnit;
 
@@ -33,6 +34,8 @@ public class StartActivity extends BaseActivity {
     @BindView(R.id.tv_version)
     TextView tvVersion;
 
+    TipsDialog tipsDialog;
+
     private Disposable mDisposable;
 
     @Override
@@ -59,27 +62,43 @@ public class StartActivity extends BaseActivity {
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         tvVersion.setText("v" + AppUtils.getVersionName(mContext));
-        Observable.timer(3, TimeUnit.SECONDS)
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new Observer<Long>() {
-                    @Override
-                    public void onSubscribe(@NonNull Disposable disposable) {
-                        mDisposable = disposable;
-                    }
-
-                    @Override
-                    public void onNext(@NonNull Long number) {
-                    }
-
-                    @Override
-                    public void onError(@NonNull Throwable e) {
-                    }
-
-                    @Override
-                    public void onComplete() {
-                        goJump();
-                    }
-                });
+        if(SharedPreferencesUtils.getIsAgreeTips(mContext)){
+            Observable.timer(2, TimeUnit.SECONDS)
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new Observer<Long>() {
+                        @Override
+                        public void onSubscribe(@NonNull Disposable disposable) {
+                            mDisposable = disposable;
+                        }
+
+                        @Override
+                        public void onNext(@NonNull Long number) {
+                        }
+
+                        @Override
+                        public void onError(@NonNull Throwable e) {
+                        }
+
+                        @Override
+                        public void onComplete() {
+                            goJump();
+                        }
+                    });
+        }else{
+            tipsDialog =  new TipsDialog(mContext);
+            tipsDialog.setOnClickSureListener(new TipsDialog.OnClickSureListener() {
+               @Override
+               public void onClick(boolean isSure) {
+                   if(isSure){
+                       SharedPreferencesUtils.setIsAgreeTips(mContext,true);
+                       startActivity(new Intent(mContext, GuideActivity.class));
+                   }else{
+                       finish();
+                   }
+               }
+           });
+            tipsDialog.show();
+        }
     }
 
 

+ 1 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/base/BaseViewHolder.java

@@ -14,12 +14,12 @@ public abstract class BaseViewHolder {
      * Holder所绑定的View
      */
     public View holderView;
+
     /**
      * 上下文
      */
     public Context mContext;
 
-
     public BaseViewHolder(Context mContext) {
         if (mContext != null) {
             this.mContext = mContext;

+ 16 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/span/TipsClickSpan.java

@@ -0,0 +1,16 @@
+package com.tongyu.luck.happywork.ui.span;
+
+import android.graphics.Color;
+import android.support.annotation.NonNull;
+import android.text.TextPaint;
+import android.text.style.ClickableSpan;
+
+public abstract class TipsClickSpan extends ClickableSpan {
+
+    @Override
+    public void updateDrawState(@NonNull TextPaint ds) {
+        super.updateDrawState(ds);
+        ds.setColor(Color.parseColor("#007AFF"));//颜色
+        ds.setUnderlineText(false); //去掉下划线
+    }
+}

+ 112 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/widget/dialog/TipsDialog.java

@@ -0,0 +1,112 @@
+package com.tongyu.luck.happywork.ui.widget.dialog;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.method.LinkMovementMethod;
+import android.text.style.ClickableSpan;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.tongyu.luck.happywork.R;
+import com.tongyu.luck.happywork.ui.activity.PrivacyTipsActivity;
+import com.tongyu.luck.happywork.ui.activity.UserTipsActivity;
+import com.tongyu.luck.happywork.ui.base.BaseViewHolder;
+import com.tongyu.luck.happywork.ui.span.TipsClickSpan;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class TipsDialog {
+    private Dialog mDialog;
+    private ViewHolder mViewHolder;
+    private OnClickSureListener onClickSureListener;
+
+    public TipsDialog(final Context mContext) {
+        mViewHolder = new ViewHolder(mContext);
+        mDialog = new Dialog(mContext, R.style.HappyJobDialog);
+        mDialog.setCanceledOnTouchOutside(false);
+        mDialog.setCancelable(false);
+        mDialog.setContentView(mViewHolder.getView());
+    }
+
+    public void dismiss() {
+        if (mDialog != null && mDialog.isShowing())
+            mDialog.dismiss();
+
+    }
+
+    public void show() {
+        if (mDialog != null && !mDialog.isShowing())
+            mDialog.show();
+    }
+
+    public void setOnClickSureListener(OnClickSureListener onClickSureListener) {
+        this.onClickSureListener = onClickSureListener;
+    }
+
+    class ViewHolder extends BaseViewHolder {
+
+        @BindView(R.id.btn_agree)
+        Button btnAgree;
+        @BindView(R.id.tv_disagree)
+        TextView tvDisagree;
+        @BindView(R.id.tv_tips)
+        TextView tvTips;
+
+        public ViewHolder(Context mContext) {
+            super(mContext);
+
+            ClickableSpan clickableSpan = new ClickableSpan() {
+                @Override
+                public void onClick(@NonNull View widget) {
+
+                }
+            };
+
+            SpannableString spannableString = new SpannableString(mContext.getResources().getString(R.string.tips));
+            spannableString.setSpan(new TipsClickSpan() {
+                @Override
+                public void onClick(View widget) {
+                    ViewHolder.super.mContext.startActivity(new Intent(ViewHolder.super.mContext, UserTipsActivity.class));
+                }
+            }, spannableString.length() - 19, spannableString.length() - 13, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+            spannableString.setSpan(new TipsClickSpan() {
+                @Override
+                public void onClick(View widget) {
+                    ViewHolder.super.mContext.startActivity(new Intent(ViewHolder.super.mContext, PrivacyTipsActivity.class));
+                }
+            }, spannableString.length() - 12, spannableString.length() - 6, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+            tvTips.setMovementMethod(LinkMovementMethod.getInstance());//不设置点击会失效
+            tvTips.setHintTextColor(mContext.getResources().getColor(R.color.transparent));//不设置会有背景色
+            tvTips.setText(spannableString);
+        }
+
+        @Override
+        public int bindViewLayoutId() {
+            return R.layout.dialog_tips;
+        }
+
+        @OnClick({R.id.tv_disagree, R.id.btn_agree})
+        public void onClick(View view) {
+            if (view.getId() == R.id.tv_disagree) {
+                if (onClickSureListener != null)
+                    onClickSureListener.onClick(false);
+                dismiss();
+            } else if (view.getId() == R.id.btn_agree) {
+                if (onClickSureListener != null)
+                    onClickSureListener.onClick(true);
+                dismiss();
+            }
+        }
+
+    }
+
+    public interface OnClickSureListener {
+        void onClick(boolean isSure);
+    }
+}

+ 2 - 1
app/src/main/res/layout/activity_start.xml

@@ -18,7 +18,8 @@
         android:background="@drawable/corners_login_button_type"
         android:text="@string/start_user"
         android:textColor="@color/white"
-        android:textSize="@dimen/px45_15sp" />
+        android:textSize="@dimen/px45_15sp"
+        android:visibility="gone" />
 
     <TextView
         android:id="@+id/tv_version"

+ 65 - 0
app/src/main/res/layout/dialog_tips.xml

@@ -0,0 +1,65 @@
+<?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_horizontal"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="307dp"
+        android:layout_height="403dp"
+        android:background="@drawable/corners_white_14dp"
+        android:orientation="vertical">
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="25dp"
+            android:layout_marginTop="29dp"
+            android:layout_marginLeft="19dp"
+            android:gravity="center_vertical"
+            android:textColor="@color/black"
+            android:textSize="@dimen/px54_18sp"
+            android:text="@string/welcome_use_app"/>
+
+        <android.support.v4.widget.NestedScrollView
+            android:layout_width="match_parent"
+            android:layout_marginTop="10dp"
+            android:layout_marginLeft="19dp"
+            android:layout_marginRight="19dp"
+            android:layout_height="233dp"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_tips"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:lineSpacingExtra="3dp"
+                android:textColor="@color/text_black_44"
+                android:textSize="@dimen/px39_13sp"
+                android:text="@string/tips"/>
+        </android.support.v4.widget.NestedScrollView>
+
+
+        <Button
+            android:layout_width="250dp"
+            android:layout_height="42dp"
+            android:layout_marginTop="8dp"
+            android:layout_gravity="center_horizontal"
+            android:id="@+id/btn_agree"
+            android:textColor="@color/white"
+            android:textSize="@dimen/px42_14sp"
+            android:background="@drawable/corners_blue_5dp"
+            android:text="@string/agree"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:gravity="center"
+            android:layout_gravity="center_horizontal"
+            android:textColor="@color/text_gray_99"
+            android:text="@string/disagree"
+            android:id="@+id/tv_disagree"
+            android:layout_marginTop="12dp"
+            />
+
+    </LinearLayout>
+</LinearLayout>

Різницю між файлами не показано, бо вона завелика
+ 4 - 0
app/src/main/res/values/strings.xml


+ 8 - 0
baselibrary/src/main/java/com/tongyu/luck/happywork/baselibrary/utils/SharedPreferencesUtils.java

@@ -14,11 +14,19 @@ public class SharedPreferencesUtils {
     public static final String LOCATION_CITY_JSON_DATA = "location_city_json_data";//选择所在城市Json数据
     public static final String HISTORY_SEARCH_POSITION = "history_search_position";//岗位搜索历史
     public static final String HISTORY_APP_VERSION = "history_app_version";//历史版本号
+    public static final String IS_AGREE_TIPS = "is_agree_tips";//是否已经同意协议
     public static final String APP_UPDATE_DOWNLOAD_ID = "app_update_download_id";//app更新下载ID
     public static final String COMPANY_BEAN_JSON_DATA = "company_bean_json_data";//企业信息Json数据
     public static final String MEMBER_BEAN_JSON_DATA = "member_bean_json_data";//人员信息Json数据
     public static final String WECHAT_LOGIN_TAG = "we_chat_login_tag";//判断是否为微信登录
 
+    public static void setIsAgreeTips(Context context, boolean isAgree) {
+        saveData(context, IS_AGREE_TIPS, isAgree);
+    }
+
+    public static boolean getIsAgreeTips(Context context) {
+        return (boolean) getData(context, IS_AGREE_TIPS, false);
+    }
 
     public static void setMemberBeanJsonData(Context context, String jsonData) {
         saveData(context, MEMBER_BEAN_JSON_DATA, jsonData);