Skip to content

Commit 2cf9b2d

Browse files
sevenhhearchurcode
authored andcommitted
【腾讯连连APP】安卓获取WiFi提示
http://tapd.oa.com/NEW_IOT/prong/stories/view/1020393192859865479 Change-Id: I7cc366470666a1f5744481a3474bfeb135a531db
1 parent 3a36906 commit 2cf9b2d

File tree

6 files changed

+277
-9
lines changed

6 files changed

+277
-9
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.tencent.iot.explorer.link.customview.dialog;
2+
3+
import android.app.Dialog;
4+
import android.content.Context;
5+
import android.os.Bundle;
6+
import android.util.DisplayMetrics;
7+
import android.util.Log;
8+
import android.view.Gravity;
9+
import android.view.View;
10+
import android.view.ViewGroup;
11+
import android.view.WindowManager;
12+
import android.view.animation.Animation;
13+
import android.view.animation.DecelerateInterpolator;
14+
import android.view.animation.TranslateAnimation;
15+
16+
import com.tencent.iot.explorer.link.R;
17+
18+
public class IosCenterStyleDialog extends Dialog {
19+
20+
protected DisplayMetrics displayMetrics;
21+
protected View view;
22+
private Context mContext;
23+
private int layoutId;
24+
25+
public IosCenterStyleDialog(Context context, int layoutId) {
26+
super(context, R.style.iOSDialog);
27+
mContext = context;
28+
displayMetrics = context.getResources().getDisplayMetrics();
29+
this.layoutId = layoutId;
30+
}
31+
32+
@Override
33+
protected void onCreate(Bundle savedInstanceState) {
34+
super.onCreate(savedInstanceState);
35+
36+
//设置view 弹出的平移动画,从底部-100% 平移到自身位置
37+
TranslateAnimation animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF,
38+
0f, Animation.RELATIVE_TO_SELF, 1f, Animation.RELATIVE_TO_SELF, 0);
39+
animation.setInterpolator(new DecelerateInterpolator());
40+
animation.setDuration(350);
41+
animation.setStartOffset(150);
42+
43+
view = View.inflate(mContext, this.layoutId, null);
44+
view.setAnimation(animation);//设置动画
45+
initView();
46+
}
47+
48+
public void initView() {
49+
50+
}
51+
52+
@Override
53+
public void show() {
54+
super.show();
55+
// 设置dialog的宽高是全屏,注意:一定要放在show的后面,否则不是全屏显示
56+
WindowManager.LayoutParams params = getWindow().getAttributes();
57+
params.width = displayMetrics.widthPixels;
58+
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
59+
params.gravity = Gravity.CENTER;
60+
getWindow().setAttributes(params);
61+
getWindow().setContentView(view);
62+
}
63+
64+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.tencent.iot.explorer.link.customview.dialog;
2+
3+
import android.content.Context;
4+
import android.view.View;
5+
import android.widget.TextView;
6+
7+
import androidx.constraintlayout.widget.ConstraintLayout;
8+
9+
import com.tencent.iot.explorer.link.R;
10+
11+
public class WifiHelperDialog extends IosCenterStyleDialog {
12+
13+
private String tipStr;
14+
private TextView tipContent;
15+
private TextView cancel;
16+
private TextView ok;
17+
private ConstraintLayout outsideLayout;
18+
19+
public WifiHelperDialog(Context context, String tipStr) {
20+
super(context, R.layout.popup_cancel_ok_layout);
21+
this.tipStr = tipStr;
22+
}
23+
24+
@Override
25+
public void initView() {
26+
tipContent = view.findViewById(R.id.tv_tip_content);
27+
cancel = view.findViewById(R.id.tv_cancel);
28+
ok = view.findViewById(R.id.tv_to_set);
29+
outsideLayout = view.findViewById(R.id.outside_dialog_layout);
30+
31+
tipContent.setText(tipStr);
32+
cancel.setOnClickListener(onClickListener);
33+
ok.setOnClickListener(onClickListener);
34+
outsideLayout.setOnClickListener(onClickListener);
35+
}
36+
37+
private View.OnClickListener onClickListener = new View.OnClickListener() {
38+
39+
@Override
40+
public void onClick(View v) {
41+
switch (v.getId())
42+
{
43+
case R.id.tv_cancel:
44+
if (onDismisListener != null) {
45+
onDismisListener.onCancelClicked();
46+
}
47+
break;
48+
case R.id.tv_to_set:
49+
if (onDismisListener != null) {
50+
onDismisListener.onOkClicked();
51+
}
52+
break;
53+
}
54+
dismiss();
55+
}
56+
};
57+
58+
private OnDismisListener onDismisListener;
59+
60+
public interface OnDismisListener {
61+
void onCancelClicked();
62+
void onOkClicked();
63+
}
64+
65+
public void setOnDismisListener(OnDismisListener onDismisListener) {
66+
this.onDismisListener = onDismisListener;
67+
}
68+
69+
public void show() {
70+
if (!isShowing()) {
71+
super.show();
72+
}
73+
}
74+
75+
}

app/src/main/java/com/tencent/iot/explorer/link/kitlink/fragment/WifiFragment.kt

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.text.Editable
88
import android.text.TextWatcher
99
import android.view.View
1010
import com.tencent.iot.explorer.link.R
11+
import com.tencent.iot.explorer.link.customview.dialog.WifiHelperDialog
1112
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
1213
import com.tencent.iot.explorer.link.mvp.IPresenter
1314
import com.tencent.iot.explorer.link.util.T
@@ -26,6 +27,8 @@ class WifiFragment(type: Int) : BaseFragment() {
2627
private var showPwd = false
2728

2829
var onCommitWifiListener: OnCommitWifiListener? = null
30+
var openWifiDialog: WifiHelperDialog? = null
31+
var openLocationServiceDialog: WifiHelperDialog? = null
2932

3033
companion object {
3134
const val smart_config = 0
@@ -48,12 +51,14 @@ class WifiFragment(type: Int) : BaseFragment() {
4851
if (wifiInfo == null || wifiInfo!!.bssid == null) {
4952
tv_select_wifi.hint = getString(R.string.not_network)
5053
tv_wifi_commit.isEnabled = false
54+
tv_select_wifi.setText("")
55+
openWifiDialog?.show()
5156
} else {
5257
var ssid2Set = wifiManager.connectionInfo.ssid.replace("\"", "")
53-
if (ssid2Set.equals(CommonField.SSID_UNKNOWN) &&
54-
!LocationUtil.isLocationServiceEnable(context)) {
58+
if (!LocationUtil.isLocationServiceEnable(context)) {
5559
tv_select_wifi.hint = getString(R.string.open_location_tip)
5660
ssid2Set = ""
61+
openLocationServiceDialog?.show()
5762
}
5863
tv_select_wifi.setText(ssid2Set)
5964

@@ -76,6 +81,22 @@ class WifiFragment(type: Int) : BaseFragment() {
7681
}
7782

7883
override fun startHere(view: View) {
84+
openWifiDialog = WifiHelperDialog(context, getString(R.string.please_open_wifi))
85+
openWifiDialog?.setOnDismisListener(object: WifiHelperDialog.OnDismisListener{
86+
override fun onOkClicked() {
87+
startActivity(Intent(android.provider.Settings.ACTION_WIFI_SETTINGS))
88+
}
89+
90+
override fun onCancelClicked() {}
91+
})
92+
openLocationServiceDialog = WifiHelperDialog(context, getString(R.string.please_open_location_service))
93+
openLocationServiceDialog?.setOnDismisListener(object: WifiHelperDialog.OnDismisListener{
94+
override fun onOkClicked() {
95+
startActivity(Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS))
96+
}
97+
98+
override fun onCancelClicked() {}
99+
})
79100
showWifiInfo()
80101
et_select_wifi_pwd.addClearImage(iv_wifi_eye_clear)
81102
et_select_wifi_pwd.addShowImage(

app/src/main/res/layout/fragment_smart_config_step.xml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,11 @@
1515

1616
<ImageView
1717
android:id="@+id/iv_smart_config"
18-
android:layout_width="wrap_content"
18+
android:layout_width="match_parent"
1919
android:layout_height="wrap_content"
20-
android:paddingLeft="20dp"
21-
android:paddingRight="20dp"
22-
android:paddingTop="10dp"
23-
android:paddingBottom="20dp"
24-
android:scaleType="centerCrop"
25-
android:adjustViewBounds="true"
20+
android:layout_marginStart="20dp"
21+
android:layout_marginTop="93dp"
22+
android:layout_marginEnd="20dp"
2623
android:src="@mipmap/image_smart_config"/>
2724
<TextView
2825
android:id="@+id/tv_smart_config_hint"
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:id="@+id/outside_dialog_layout"
7+
android:background="@color/dialog_background"
8+
xmlns:app="http://schemas.android.com/apk/res-auto">
9+
10+
11+
<androidx.constraintlayout.widget.ConstraintLayout
12+
android:layout_width="0dp"
13+
android:layout_height="wrap_content"
14+
android:background="@drawable/background_failed_cell"
15+
android:layout_marginEnd="45dp"
16+
android:layout_marginStart="45dp"
17+
android:paddingTop="15dp"
18+
app:layout_constraintBottom_toBottomOf="parent"
19+
app:layout_constraintEnd_toEndOf="parent"
20+
app:layout_constraintStart_toStartOf="parent"
21+
app:layout_constraintTop_toTopOf="parent"
22+
>
23+
24+
<TextView
25+
android:layout_width="wrap_content"
26+
android:layout_height="wrap_content"
27+
android:id="@+id/tv_dialog_tip"
28+
app:layout_constraintTop_toTopOf="parent"
29+
app:layout_constraintStart_toStartOf="parent"
30+
app:layout_constraintEnd_toEndOf="parent"
31+
android:text="@string/dialog_tip"
32+
android:textStyle="bold"
33+
android:textSize="22sp"
34+
android:textColor="@color/black"
35+
/>
36+
37+
<TextView
38+
android:id="@+id/tv_tip_content"
39+
android:layout_marginTop="20dp"
40+
android:layout_width="0dp"
41+
android:layout_height="wrap_content"
42+
app:layout_constraintTop_toBottomOf="@id/tv_dialog_tip"
43+
android:textSize="@dimen/ts_16"
44+
app:layout_constraintStart_toStartOf="parent"
45+
app:layout_constraintEnd_toEndOf="parent"
46+
android:gravity="center"
47+
android:paddingLeft="40dp"
48+
android:paddingRight="40dp"
49+
android:textColor="@color/black"
50+
/>
51+
52+
<View
53+
android:id="@+id/v_line_h"
54+
android:layout_width="0dp"
55+
android:layout_height="1dp"
56+
app:layout_constraintStart_toStartOf="parent"
57+
app:layout_constraintEnd_toEndOf="parent"
58+
app:layout_constraintTop_toBottomOf="@id/tv_tip_content"
59+
android:background="@color/line_grey_color"
60+
android:layout_marginTop="20dp"
61+
/>
62+
63+
<View
64+
android:id="@+id/v_line_v"
65+
android:layout_width="1dp"
66+
android:layout_height="0dp"
67+
android:background="@color/line_grey_color"
68+
app:layout_constraintTop_toBottomOf="@id/v_line_h"
69+
app:layout_constraintStart_toStartOf="parent"
70+
app:layout_constraintEnd_toEndOf="parent"
71+
app:layout_constraintBottom_toBottomOf="@id/tv_to_set"
72+
/>
73+
74+
<TextView
75+
android:id="@+id/tv_cancel"
76+
android:layout_width="0dp"
77+
android:layout_height="wrap_content"
78+
app:layout_constraintEnd_toStartOf="@+id/v_line_v"
79+
app:layout_constraintTop_toBottomOf="@id/v_line_h"
80+
app:layout_constraintBottom_toBottomOf="@id/tv_to_set"
81+
app:layout_constraintStart_toStartOf="parent"
82+
android:textSize="@dimen/ts_18"
83+
android:paddingTop="17dp"
84+
android:paddingBottom="17dp"
85+
android:textColor="@color/black_888888"
86+
android:gravity="center"
87+
android:text="@string/cancel"/>
88+
89+
<TextView
90+
android:id="@+id/tv_to_set"
91+
android:layout_width="0dp"
92+
android:layout_height="0dp"
93+
android:textSize="@dimen/ts_18"
94+
android:gravity="center"
95+
android:textColor="@color/complete_progress"
96+
android:paddingTop="17dp"
97+
android:paddingBottom="17dp"
98+
android:text="@string/to_set"
99+
app:layout_constraintEnd_toEndOf="parent"
100+
app:layout_constraintStart_toEndOf="@+id/v_line_v"
101+
app:layout_constraintTop_toBottomOf="@+id/v_line_h"
102+
app:layout_constraintBottom_toBottomOf="parent"
103+
/>
104+
105+
</androidx.constraintlayout.widget.ConstraintLayout>
106+
107+
</androidx.constraintlayout.widget.ConstraintLayout>

app/src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@
167167
<string name="power_off">电源开关:关闭</string>
168168
<string name="on">开启</string>
169169
<string name="off">关闭</string>
170+
<string name="dialog_tip">提示</string>
171+
<string name="to_set">去开启</string>
172+
<string name="please_open_wifi">手机WIFI未开启,请开启并连接WIFI</string>
173+
<string name="please_open_location_service">请开启手机定位服务,以便获取附近WIFI信号</string>
170174

171175
<string name="device_details">设备详情</string>
172176
<string name="remark_name">备注名称</string>

0 commit comments

Comments
 (0)