AttentionFragment.java
3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.studymachine.www.ui.fragment;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatImageView;
import com.blankj.utilcode.util.ToastUtils;
import com.king.zxing.util.CodeUtils;
import com.studymachine.www.BuildConfig;
import com.studymachine.www.R;
import com.studymachine.www.app.AppFragment;
import com.studymachine.www.http.api.UserInfoApi;
import com.studymachine.www.http.glide.GlideApp;
import com.studymachine.www.manager.UserManager;
import com.studymachine.www.ui.activity.PersonalCenterActivity;
import timber.log.Timber;
/**
* desc : 家长关注
*/
public final class AttentionFragment extends AppFragment<PersonalCenterActivity> {
private AppCompatImageView mIvQr;
private DeviceReceiver mDeviceReceiver;
private final Runnable mLoopSend = new Runnable() {
@Override
public void run() {
sendBroadcast();
postDelayed(mLoopSend, 1000);
}
};
private final Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
String id = String.valueOf(msg.obj);
Timber.d("接收广播%s", id);
UserInfoApi.Bean userInfo = UserManager.getInstance().getUserBean();
String builder = "{\"deviceId\":\"" +
id +
"\"," +
"\"userId\":\"" +
userInfo.getMobile() +
"\"}";
mIvQr.setImageBitmap(CodeUtils.createQRCode(builder, (int) getResources().getDimension(R.dimen.dp_50)));
AttentionFragment.this.removeCallbacks();
}
};
public static AttentionFragment newInstance() {
return new AttentionFragment();
}
@Override
protected int getLayoutId() {
return R.layout.attention_fragment;
}
@Override
protected void initView() {
mIvQr = findViewById(R.id.iv_qr);
}
@Override
protected void initData() {
mDeviceReceiver = new DeviceReceiver(mHandler);
IntentFilter filter = new IntentFilter();
filter.addAction("com.linspirer.child_device_uuid");
getAttachActivity().registerReceiver(mDeviceReceiver, filter);
}
protected void sendBroadcast() {
Intent intent = new Intent("com.linspirer.sheepmie_getdevice_uuid");
intent.setPackage("com.linspirer.sheepmie");
getAttachActivity().sendBroadcast(intent);
}
@Override
protected void onFragmentResume(boolean first) {
super.onFragmentResume(first);
removeCallbacks();
sendBroadcast();
postDelayed(mLoopSend, 1000);
}
@Override
public void onPause() {
super.onPause();
removeCallbacks();
}
@Override
public void onDestroy() {
super.onDestroy();
removeCallbacks();
if (mDeviceReceiver != null) {
getContext().unregisterReceiver(mDeviceReceiver);
}
}
static class DeviceReceiver extends BroadcastReceiver {
private Handler mHandler;
public DeviceReceiver(Handler mHandler) {
this.mHandler = mHandler;
}
@Override
public void onReceive(Context context, Intent intent) {
Message msg = new Message();
msg.what = 1;
msg.obj = intent.getStringExtra("user_uuid");
mHandler.sendMessage(msg);
}
}
}