| package com.matter.tv.server.fragments; |
| |
| import android.graphics.Bitmap; |
| import android.os.Bundle; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.widget.ImageView; |
| import android.widget.SeekBar; |
| import android.widget.TextView; |
| import androidx.fragment.app.Fragment; |
| import com.matter.tv.server.QRUtils; |
| import com.matter.tv.server.R; |
| import com.matter.tv.server.service.MatterServant; |
| import java.util.HashSet; |
| import matter.onboardingpayload.DiscoveryCapability; |
| import matter.onboardingpayload.OnboardingPayload; |
| import matter.onboardingpayload.OnboardingPayloadException; |
| import matter.onboardingpayload.OnboardingPayloadParser; |
| |
| /** |
| * A simple {@link Fragment} subclass. Use the {@link QrCodeFragment#newInstance} factory method to |
| * create an instance of this fragment. |
| */ |
| public class QrCodeFragment extends Fragment { |
| |
| private ImageView mQrCodeImg; |
| private TextView mQrCodeTxt; |
| private TextView mManualPairingCodeTxt; |
| |
| public QrCodeFragment() { |
| // Required empty public constructor |
| } |
| |
| /** |
| * Use this factory method to create a new instance of this fragment using the provided |
| * parameters. |
| * |
| * @return A new instance of fragment QrCodeFragment. |
| */ |
| public static QrCodeFragment newInstance() { |
| QrCodeFragment fragment = new QrCodeFragment(); |
| Bundle args = new Bundle(); |
| fragment.setArguments(args); |
| return fragment; |
| } |
| |
| @Override |
| public void onResume() { |
| super.onResume(); |
| |
| mQrCodeImg = getView().findViewById(R.id.qrCodeImg); |
| mQrCodeTxt = getView().findViewById(R.id.qrCodeTxt); |
| mManualPairingCodeTxt = getView().findViewById(R.id.manualPairingCodeTxt); |
| getView().findViewById(R.id.resetBtn).setOnClickListener(view -> MatterServant.get().restart()); |
| getView() |
| .findViewById(R.id.OnOffBtn) |
| .setOnClickListener(view -> MatterServant.get().toggleOnOff()); |
| // TODO: Get these parameters from PreferencesConfigurationManager |
| HashSet<DiscoveryCapability> discoveryCapabilities = new HashSet<>(); |
| discoveryCapabilities.add(DiscoveryCapability.ON_NETWORK); |
| OnboardingPayload payload = |
| new OnboardingPayload(0, 9050, 65279, 0, discoveryCapabilities, 3840, 20202021); |
| |
| OnboardingPayloadParser parser = new OnboardingPayloadParser(); |
| try { |
| String qrCode = parser.getQrCodeFromPayload(payload); |
| mQrCodeTxt.setText(qrCode); |
| |
| Bitmap qrCodeBitmap = QRUtils.createQRCodeBitmap(qrCode, 800, 800); |
| mQrCodeImg.setImageBitmap(qrCodeBitmap); |
| } catch (OnboardingPayloadException e) { |
| e.printStackTrace(); |
| } |
| |
| try { |
| String manualPairingCode = parser.getManualPairingCodeFromPayload(payload); |
| mManualPairingCodeTxt.setText("ManualPairingCode:" + manualPairingCode); |
| } catch (OnboardingPayloadException e) { |
| e.printStackTrace(); |
| } |
| |
| SeekBar sb = getView().findViewById(R.id.seekBar); |
| sb.setOnSeekBarChangeListener( |
| new SeekBar.OnSeekBarChangeListener() { |
| @Override |
| public void onProgressChanged(SeekBar seekBar, int i, boolean b) { |
| MatterServant.get().updateLevel(i); |
| } |
| |
| @Override |
| public void onStartTrackingTouch(SeekBar seekBar) {} |
| |
| @Override |
| public void onStopTrackingTouch(SeekBar seekBar) {} |
| }); |
| } |
| |
| @Override |
| public void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| } |
| |
| @Override |
| public View onCreateView( |
| LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { |
| // Inflate the layout for this fragment |
| return inflater.inflate(R.layout.fragment_qr_code, container, false); |
| } |
| } |