mirror of
https://github.com/Team4388/RidgeScout.git
synced 2026-06-08 16:28:00 -06:00
Start work on match scouting ui
This commit is contained in:
@@ -7,7 +7,7 @@ import com.astatin3.scoutingapp2025.fileEditor;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class fields {
|
||||
private static ScoutingVersion sv = new ScoutingVersion();
|
||||
public static ScoutingVersion sv = new ScoutingVersion();
|
||||
public static final String fieldsFilename = "data.fields";
|
||||
|
||||
public static ScoutingVersion.inputType[][] values = new ScoutingVersion.inputType[][]{};
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.astatin3.scoutingapp2025.SettingsVersionStack;
|
||||
|
||||
public class latestSettings {
|
||||
public static sv0 settings = new sv0();
|
||||
public static sv1 settings = new sv1();
|
||||
public static void update(){
|
||||
settings.init_settings();
|
||||
settings.update();
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.astatin3.scoutingapp2025.SettingsVersionStack;
|
||||
|
||||
public class sv1 extends sv0 {
|
||||
@Override
|
||||
public int getVersion() {
|
||||
return 0;
|
||||
}
|
||||
@Override
|
||||
public void update(){
|
||||
int file_version = get_file_version();
|
||||
if(file_version == getVersion()) {
|
||||
return;
|
||||
}else if(file_version < getVersion()){
|
||||
super.update();
|
||||
}
|
||||
set_file_version(getVersion());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void defaultSettings() {
|
||||
writeTag("username", "Username");
|
||||
writeTag("selected_event_code", "unset");
|
||||
// writeTag("practice_mode", "false");
|
||||
writeTag("wifi_mode", "false");
|
||||
|
||||
writeTag("match_num", "0");
|
||||
writeTag("alliance_pos", "red-1");
|
||||
}
|
||||
|
||||
public int get_match_num(){
|
||||
return Integer.parseInt(readTag("match_num"));
|
||||
}
|
||||
|
||||
public void set_match_num(int num){
|
||||
writeTag("match_num", String.valueOf(num));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void set_evcode(String evcode){
|
||||
set_match_num(0);
|
||||
writeTag("selected_event_code", evcode);
|
||||
}
|
||||
|
||||
public String get_alliance_pos(){
|
||||
return readTag("alliance_pos");
|
||||
}
|
||||
|
||||
public void set_alliance_pos(String pos){
|
||||
writeTag("alliance_pos", pos);
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,148 @@
|
||||
package com.astatin3.scoutingapp2025.ui.scouting;
|
||||
|
||||
import static com.astatin3.scoutingapp2025.ScoutingDataVersion.fields.sv;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.astatin3.scoutingapp2025.ScoutingDataVersion.ScoutingVersion;
|
||||
import com.astatin3.scoutingapp2025.ScoutingDataVersion.fields;
|
||||
import com.astatin3.scoutingapp2025.SettingsVersionStack.latestSettings;
|
||||
import com.astatin3.scoutingapp2025.databinding.FragmentScoutingBinding;
|
||||
import com.astatin3.scoutingapp2025.fileEditor;
|
||||
import com.astatin3.scoutingapp2025.types.frcEvent;
|
||||
import com.astatin3.scoutingapp2025.types.frcMatch;
|
||||
import com.astatin3.scoutingapp2025.types.frcTeam;
|
||||
|
||||
public class matchScoutingView extends ConstraintLayout {
|
||||
public matchScoutingView(@NonNull Context context) {
|
||||
public matchScoutingView(Context context) {
|
||||
super(context);
|
||||
}
|
||||
public matchScoutingView(Context context, AttributeSet attributeSet){
|
||||
super(context, attributeSet);
|
||||
}
|
||||
|
||||
FragmentScoutingBinding binding;
|
||||
String alliance_position;
|
||||
String evcode;
|
||||
int cur_match_num;
|
||||
frcEvent event;
|
||||
|
||||
public void init(FragmentScoutingBinding tmp_binding){
|
||||
binding = tmp_binding;
|
||||
|
||||
alliance_position = latestSettings.settings.get_alliance_pos();
|
||||
evcode = latestSettings.settings.get_evcode();
|
||||
event = frcEvent.decode(fileEditor.readFile(evcode + ".eventdata"));
|
||||
|
||||
binding.eventcode.setText(evcode);
|
||||
binding.alliancePosText.setText(alliance_position);
|
||||
|
||||
cur_match_num = latestSettings.settings.get_match_num();
|
||||
update_match_num();
|
||||
|
||||
binding.nextButton.setOnClickListener(v -> {
|
||||
latestSettings.settings.set_match_num(cur_match_num+1);
|
||||
cur_match_num += 1;
|
||||
update_match_num();
|
||||
});
|
||||
|
||||
binding.backButton.setOnClickListener(v -> {
|
||||
latestSettings.settings.set_match_num(cur_match_num-1);
|
||||
cur_match_num -= 1;
|
||||
update_match_num();
|
||||
});
|
||||
}
|
||||
|
||||
private void update_match_num(){
|
||||
// cur_match_num = latestSettings.settings.get_match_num();
|
||||
|
||||
binding.matchnum.setText(String.valueOf(cur_match_num+1));
|
||||
|
||||
System.out.println(cur_match_num);
|
||||
|
||||
if(cur_match_num <= 0){
|
||||
binding.backButton.setVisibility(View.GONE);
|
||||
}else{
|
||||
binding.backButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if(cur_match_num >= event.matches.size()-1){
|
||||
binding.nextButton.setVisibility(View.GONE);
|
||||
}else{
|
||||
binding.nextButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
update_scouting_data();
|
||||
}
|
||||
|
||||
public void update_scouting_data(){
|
||||
frcMatch match = event.matches.get(cur_match_num);
|
||||
|
||||
// Get team number
|
||||
String[] split = alliance_position.split("-");
|
||||
Integer team_num = null;
|
||||
|
||||
switch (split[0]){
|
||||
case "red":
|
||||
team_num = match.redAlliance[Integer.parseInt(split[1])-1];
|
||||
break;
|
||||
case "blue":
|
||||
team_num = match.blueAlliance[Integer.parseInt(split[1])-1];
|
||||
break;
|
||||
}
|
||||
|
||||
binding.barTeamNum.setText(String.valueOf(team_num));
|
||||
|
||||
frcTeam team = null;
|
||||
for(int i=0; i < event.teams.size(); i++){
|
||||
frcTeam tmpteam = event.teams.get(i);
|
||||
if(tmpteam.teamNumber == team_num){
|
||||
team = tmpteam;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
binding.teamName.setText(team.teamName);
|
||||
binding.teamDescription.setText(team.getDescription());
|
||||
|
||||
fields.load();
|
||||
ScoutingVersion.inputType[] values = fields.values[fields.values.length-1];
|
||||
|
||||
int prev_text = binding.teamDescription.getId();
|
||||
|
||||
for(int i = 0 ; i < values.length; i++){
|
||||
TextView tv = new TextView(getContext());
|
||||
|
||||
// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
|
||||
//// params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
|
||||
// params.addRule(RelativeLayout.ALIGN_LEFT, prev_text);
|
||||
// tv.setLayoutParams(params);
|
||||
|
||||
|
||||
String text = "Fallback";
|
||||
switch (values[i].getInputType()){
|
||||
case SLIDER:
|
||||
text = "Slider";
|
||||
break;
|
||||
case DROPDOWN:
|
||||
text = "Dropdown";
|
||||
break;
|
||||
case NOTES_INPUT:
|
||||
text = "Notes";
|
||||
break;
|
||||
}
|
||||
System.out.println(text);
|
||||
tv.setText(text);
|
||||
|
||||
binding.MatchScoutArea.addView(tv);
|
||||
prev_text = tv.getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.astatin3.scoutingapp2025.ui.scouting;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
public class pitScoutingView extends ConstraintLayout {
|
||||
public pitScoutingView(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
}
|
||||
@@ -28,20 +28,23 @@ public class scoutingFragment extends Fragment {
|
||||
binding = FragmentScoutingBinding.inflate(inflater, container, false);
|
||||
View root = binding.getRoot();
|
||||
|
||||
binding.buttons.setVisibility(View.VISIBLE);
|
||||
binding.matchScoutingView.setVisibility(View.GONE);
|
||||
|
||||
if(latestSettings.settings.get_evcode().equals("unset")){
|
||||
binding.noEventError.setVisibility(View.VISIBLE);
|
||||
binding.buttons.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
binding.matchScoutingButton.setOnClickListener(v -> {
|
||||
binding.buttons.setVisibility(View.GONE);
|
||||
binding.matchScoutingView.setVisibility(View.VISIBLE);
|
||||
binding.matchScoutingView.init(binding);
|
||||
|
||||
// byte[] bytes = fields.save();
|
||||
// System.out.println(bytes.length);
|
||||
// System.out.println(fields.load(bytes)[0].length);
|
||||
|
||||
System.out.println(fields.load());
|
||||
|
||||
fields.test();
|
||||
|
||||
// fields.test();
|
||||
|
||||
// ByteBuilder bb = new ByteBuilder();
|
||||
|
||||
@@ -108,6 +108,53 @@ public class settingsFragment extends Fragment {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PowerSpinnerView alliance_pos_spinnerView = binding.alliancePosDropdown;
|
||||
|
||||
List<IconSpinnerItem> alliance_pos_iconSpinnerItems = new ArrayList<>();
|
||||
|
||||
String target_alliance_pos = latestSettings.settings.get_alliance_pos();
|
||||
int alliance_pos_target_index = -1;
|
||||
|
||||
String[] alliance_pos_list = new String[]{"red-1", "red-2", "red-3",
|
||||
"blue-1", "blue-2", "blue-3"};
|
||||
|
||||
for(int i = 0; i < alliance_pos_list.length; i++){
|
||||
if(alliance_pos_list[i].equals(target_alliance_pos)){
|
||||
alliance_pos_target_index = i;
|
||||
}
|
||||
alliance_pos_iconSpinnerItems.add(new IconSpinnerItem(alliance_pos_list[i]));
|
||||
}
|
||||
|
||||
IconSpinnerAdapter alliance_pos_iconSpinnerAdapter = new IconSpinnerAdapter(alliance_pos_spinnerView);
|
||||
alliance_pos_spinnerView.setSpinnerAdapter(alliance_pos_iconSpinnerAdapter);
|
||||
alliance_pos_spinnerView.setItems(alliance_pos_iconSpinnerItems);
|
||||
alliance_pos_spinnerView.setLifecycleOwner(this);
|
||||
|
||||
if(alliance_pos_target_index != -1){
|
||||
alliance_pos_spinnerView.selectItemByIndex(alliance_pos_target_index);
|
||||
}
|
||||
|
||||
alliance_pos_spinnerView.setOnSpinnerItemSelectedListener(new OnSpinnerItemSelectedListener<IconSpinnerItem>() {
|
||||
@Override
|
||||
public void onItemSelected(int oldIndex, @Nullable IconSpinnerItem oldItem, int newIndex,
|
||||
IconSpinnerItem newItem) {
|
||||
latestSettings.settings.set_alliance_pos(newItem.getText().toString());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
// CheckBox practice_mode = binding.practiceMode;
|
||||
// practice_mode.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@@ -155,6 +202,7 @@ public class settingsFragment extends Fragment {
|
||||
spinnerView.clearSelectedItem();
|
||||
// practice_mode.setChecked(latestSettings.settings.get_practice_mode());
|
||||
wifi_mode.setChecked(latestSettings.settings.get_wifi_mode());
|
||||
alliance_pos_spinnerView.selectItemByIndex(0);
|
||||
});
|
||||
|
||||
alert.setNegativeButton("Cancel", null);
|
||||
|
||||
@@ -28,10 +28,12 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="gone">
|
||||
|
||||
<Button
|
||||
android:id="@+id/matchScoutingButton"
|
||||
@@ -57,5 +59,120 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.astatin3.scoutingapp2025.ui.scouting.matchScoutingView
|
||||
android:id="@+id/matchScoutingView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginBottom="48dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="1.0">
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bar_team_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Temp"
|
||||
android:textSize="24sp"
|
||||
app:layout_constraintEnd_toStartOf="@+id/next_button"
|
||||
app:layout_constraintStart_toEndOf="@+id/matchnum"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/back_button">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/MatchScoutArea"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="48dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/team_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="TextView"
|
||||
android:textAlignment="center"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/team_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:text="TextView"
|
||||
android:textAlignment="center" />
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
<Button
|
||||
android:id="@+id/back_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Back"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/middle_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Save"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/next_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Next"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/alliance_pos_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Temp"
|
||||
android:textAlignment="center"
|
||||
app:layout_constraintEnd_toStartOf="@+id/matchnum"
|
||||
app:layout_constraintStart_toEndOf="@+id/back_button"
|
||||
app:layout_constraintTop_toBottomOf="@id/eventcode" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/eventcode"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Temp"
|
||||
android:textAlignment="center"
|
||||
app:layout_constraintEnd_toStartOf="@+id/matchnum"
|
||||
app:layout_constraintStart_toEndOf="@+id/back_button"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/matchnum"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Temp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="24sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
</com.astatin3.scoutingapp2025.ui.scouting.matchScoutingView>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -40,39 +40,20 @@
|
||||
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
||||
<!-- app:layout_constraintTop_toBottomOf="@+id/eventDropdown" />-->
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/wifi_mode"
|
||||
android:layout_width="412dp"
|
||||
android:layout_height="79dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="Wifi Mode"
|
||||
android:textSize="24sp"
|
||||
<TextView
|
||||
android:id="@+id/textView2"
|
||||
android:layout_width="66dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="172dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="173dp"
|
||||
android:text="Name"
|
||||
android:textAlignment="center"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/eventDropdown" />
|
||||
|
||||
<com.skydoves.powerspinner.PowerSpinnerView
|
||||
android:id="@+id/eventDropdown"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/black_2"
|
||||
android:gravity="center"
|
||||
android:hint="No events selected"
|
||||
android:padding="10dp"
|
||||
android:textColor="@color/main_500"
|
||||
android:textColorHint="@color/teal_700"
|
||||
android:textSize="14.5sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/textView1"
|
||||
app:spinner_arrow_gravity="end"
|
||||
app:spinner_arrow_padding="8dp"
|
||||
app:spinner_divider_color="@color/teal_200"
|
||||
app:spinner_divider_show="true"
|
||||
app:spinner_divider_size="0.4dp"
|
||||
app:spinner_item_height="46dp"
|
||||
app:spinner_popup_background="@color/black_2"
|
||||
app:spinner_popup_elevation="14dp" />
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/username"
|
||||
@@ -101,20 +82,75 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/username" />
|
||||
|
||||
<com.skydoves.powerspinner.PowerSpinnerView
|
||||
android:id="@+id/eventDropdown"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/black_2"
|
||||
android:gravity="center"
|
||||
android:hint="No events selected"
|
||||
android:padding="10dp"
|
||||
android:textColor="@color/main_500"
|
||||
android:textColorHint="@color/teal_700"
|
||||
android:textSize="14.5sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/textView1"
|
||||
app:spinner_arrow_gravity="end"
|
||||
app:spinner_arrow_padding="8dp"
|
||||
app:spinner_divider_color="@color/teal_200"
|
||||
app:spinner_divider_show="true"
|
||||
app:spinner_divider_size="0.4dp"
|
||||
app:spinner_item_height="46dp"
|
||||
app:spinner_popup_background="@color/black_2"
|
||||
app:spinner_popup_elevation="14dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView2"
|
||||
android:layout_width="66dp"
|
||||
android:id="@+id/alliance_pos_text"
|
||||
android:layout_width="107dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="172dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="173dp"
|
||||
android:text="Name"
|
||||
android:layout_marginStart="152dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="152dp"
|
||||
android:text="Alliance Position"
|
||||
android:textAlignment="center"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/eventDropdown" />
|
||||
|
||||
<com.skydoves.powerspinner.PowerSpinnerView
|
||||
android:id="@+id/alliance_pos_dropdown"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/black_2"
|
||||
android:gravity="center"
|
||||
android:hint="No events selected"
|
||||
android:padding="10dp"
|
||||
android:textColor="@color/main_500"
|
||||
android:textColorHint="@color/teal_700"
|
||||
android:textSize="14.5sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/alliance_pos_text"
|
||||
app:spinner_arrow_gravity="end"
|
||||
app:spinner_arrow_padding="8dp"
|
||||
app:spinner_divider_color="@color/teal_200"
|
||||
app:spinner_divider_show="true"
|
||||
app:spinner_divider_size="0.4dp"
|
||||
app:spinner_item_height="46dp"
|
||||
app:spinner_popup_background="@color/black_2"
|
||||
app:spinner_popup_elevation="14dp" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/wifi_mode"
|
||||
android:layout_width="412dp"
|
||||
android:layout_height="79dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="Wifi Mode"
|
||||
android:textSize="24sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/alliance_pos_dropdown" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/reset_button"
|
||||
|
||||
Reference in New Issue
Block a user