X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;h=9b0b60b70b00a874277a47418058c6d40068a627;hp=72c4ed4cdab47fb56448a70ec3f2dc1a1262895f;hb=667ce42731c95a98926657fea359b56209f9348e;hpb=9b2ed5acac2771812a115f83273691b55185c4fd diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java index 72c4ed4c..9b0b60b7 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java @@ -282,33 +282,26 @@ public class ProfileDetailFragment extends Fragment { apiVersionText = context.findViewById(R.id.api_version_text); model.observeApiVersion(viewLifecycleOwner, apiVer -> apiVersionText.setText(apiVer.getDescription(getResources()))); - context.findViewById(R.id.api_version_layout) - .setOnClickListener(v -> { - MenuInflater mi = new MenuInflater(context); - PopupMenu menu = new PopupMenu(context, v); - menu.inflate(R.menu.api_version); - menu.setOnMenuItemClickListener(item -> { - SendTransactionTask.API apiVer; - switch (item.getItemId()) { - case R.id.api_version_menu_html: - apiVer = SendTransactionTask.API.html; - break; - case R.id.api_version_menu_post_1_14: - apiVer = SendTransactionTask.API.post_1_14; - break; - case R.id.api_version_menu_pre_1_15: - apiVer = SendTransactionTask.API.pre_1_15; - break; - case R.id.api_version_menu_auto: - default: - apiVer = SendTransactionTask.API.auto; - } - model.setApiVersion(apiVer); - apiVersionText.setText(apiVer.getDescription(getResources())); - return true; - }); - menu.show(); - }); + context.findViewById(R.id.api_version_label) + .setOnClickListener(this::chooseAPIVersion); + context.findViewById(R.id.api_version_text) + .setOnClickListener(this::chooseAPIVersion); + + TextView detectedApiVersion = context.findViewById(R.id.detected_version_text); + model.observeDetectedVersion(viewLifecycleOwner, ver -> { + if (ver == null) + detectedApiVersion.setText(context.getResources() + .getString(R.string.api_version_unknown_label)); + else if (ver.isPre_1_20()) + detectedApiVersion.setText(context.getResources() + .getString(R.string.api_pre_1_19)); + else + detectedApiVersion.setText(ver.toString()); + }); + detectedApiVersion.setOnClickListener(v -> model.triggerVersionDetection()); + context.findViewById(R.id.api_version_detect_button) + .setOnClickListener(v -> model.triggerVersionDetection()); + authParams = context.findViewById(R.id.auth_params); useAuthentication = context.findViewById(R.id.enable_http_auth); @@ -386,6 +379,34 @@ public class ProfileDetailFragment extends Fragment { profileName.requestFocus(); } + private void chooseAPIVersion(View v) { + Activity context = getActivity(); + ProfileDetailModel model = getModel(); + MenuInflater mi = new MenuInflater(context); + PopupMenu menu = new PopupMenu(context, v); + menu.inflate(R.menu.api_version); + menu.setOnMenuItemClickListener(item -> { + SendTransactionTask.API apiVer; + switch (item.getItemId()) { + case R.id.api_version_menu_html: + apiVer = SendTransactionTask.API.html; + break; + case R.id.api_version_menu_post_1_14: + apiVer = SendTransactionTask.API.post_1_14; + break; + case R.id.api_version_menu_pre_1_15: + apiVer = SendTransactionTask.API.pre_1_15; + break; + case R.id.api_version_menu_auto: + default: + apiVer = SendTransactionTask.API.auto; + } + model.setApiVersion(apiVer); + apiVersionText.setText(apiVer.getDescription(getResources())); + return true; + }); + menu.show(); + } private MobileLedgerProfile.FutureDates futureDatesSettingFromMenuItemId(int itemId) { switch (itemId) { case R.id.menu_future_dates_7: