Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / src / android / CHIPTool / app / src / main / java / com / google / chip / chiptool / commissioner / thread / internal / CommissioningFragment.java
1 /*
2  *   Copyright (c) 2020 Project CHIP Authors
3  *   All rights reserved.
4  *
5  *   Licensed under the Apache License, Version 2.0 (the "License");
6  *   you may not use this file except in compliance with the License.
7  *   You may obtain a copy of the License at
8  *
9  *       http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *   Unless required by applicable law or agreed to in writing, software
12  *   distributed under the License is distributed on an "AS IS" BASIS,
13  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *   See the License for the specific language governing permissions and
15  *   limitations under the License.
16  *
17  */
18
19 package com.google.chip.chiptool.commissioner.thread.internal;
20
21 import android.app.Activity;
22 import android.os.Bundle;
23 import android.view.LayoutInflater;
24 import android.view.View;
25 import android.view.ViewGroup;
26 import android.widget.Button;
27 import android.widget.ImageView;
28 import android.widget.ProgressBar;
29 import android.widget.TextView;
30 import androidx.annotation.NonNull;
31 import androidx.fragment.app.Fragment;
32 import com.google.chip.chiptool.R;
33 import com.google.chip.chiptool.commissioner.CommissionerActivity;
34 import com.google.chip.chiptool.commissioner.thread.ThreadNetworkCredential;
35
36 public class CommissioningFragment extends Fragment {
37
38   private static final String TAG = CommissioningFragment.class.getSimpleName();
39
40   ThreadNetworkCredential networkCredential;
41
42   CommissionerActivity commissionerActivity;
43
44   TextView statusText;
45   ProgressBar progressBar;
46   Button cancelButton;
47   Button doneButton;
48   ImageView doneImage;
49   ImageView errorImage;
50
51   public CommissioningFragment(@NonNull ThreadNetworkCredential networkCredential) {
52     this.networkCredential = networkCredential;
53   }
54
55   @Override
56   public View onCreateView(
57       LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
58     // Inflate the layout for this fragment
59     return inflater.inflate(R.layout.commissioner_commissioning_fragment, container, false);
60   }
61
62   @Override
63   public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
64     super.onViewCreated(view, savedInstanceState);
65
66     commissionerActivity = (CommissionerActivity) getActivity();
67
68     cancelButton = view.findViewById(R.id.cancel_button);
69     doneButton = view.findViewById(R.id.done_button);
70     doneImage = view.findViewById(R.id.done_image);
71     errorImage = view.findViewById(R.id.error_image);
72     statusText = view.findViewById(R.id.status_text);
73     progressBar = view.findViewById(R.id.commissioning_progress);
74
75     view.findViewById(R.id.cancel_button)
76         .setOnClickListener(
77             v -> {
78               commissionerActivity.finishCommissioning(Activity.RESULT_CANCELED);
79             });
80
81     view.findViewById(R.id.done_button)
82         .setOnClickListener(
83             v -> {
84               commissionerActivity.finishCommissioning(Activity.RESULT_OK);
85             });
86
87     // TODO: commissioning over BLE.
88     showCommissionDone(false, "Commissioning over BLE not implemented yet!");
89   }
90
91   private void showInProgress(String status) {
92     if (status != null) {
93       statusText.setText(status);
94     }
95
96     progressBar.setVisibility(View.VISIBLE);
97
98     cancelButton.setVisibility(View.VISIBLE);
99     doneImage.setVisibility(View.GONE);
100     errorImage.setVisibility(View.GONE);
101     doneButton.setVisibility(View.GONE);
102   }
103
104   private void showCommissionDone(Boolean success, String status) {
105     if (status != null) {
106       statusText.setText(status);
107     }
108
109     progressBar.setVisibility(View.GONE);
110     cancelButton.setVisibility(View.GONE);
111     doneButton.setVisibility(View.VISIBLE);
112
113     if (success) {
114       doneImage.setVisibility(View.VISIBLE);
115       errorImage.setVisibility(View.GONE);
116     } else {
117       doneImage.setVisibility(View.GONE);
118       errorImage.setVisibility(View.VISIBLE);
119     }
120   }
121 }