blob: 0877a57e965c80ca879e4427aa7e2e27cad129e3 [file] [log] [blame]
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);
}
}