AttentionFragment.java 3.65 KB
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);
        }
    }
}