X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;h=dc7fa9cd47f9a079b63c715f8373249c4e662454;hb=d8647570ecf462b2061cbfbf93416e422ca26611;hp=8ec562b6b5cee139ef00bade5ba2f4206f0b739a;hpb=35f511dbf3d90942c33c9524e891dfdbcde4579e;p=mobile-ledger.git 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 8ec562b6..dc7fa9cd 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 @@ -44,6 +44,7 @@ import com.google.android.material.textfield.TextInputLayout; import net.ktnx.mobileledger.BuildConfig; import net.ktnx.mobileledger.R; +import net.ktnx.mobileledger.async.SendTransactionTask; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.HueRingDialog; @@ -71,6 +72,7 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue * represents. */ public static final String ARG_ITEM_ID = "item_id"; + public static final String ARG_HUE = "hue"; @NonNls private static final String HTTPS_URL_START = "https://"; @@ -96,6 +98,8 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue private TextView futureDatesText; private MobileLedgerProfile.FutureDates futureDates; private View futureDatesLayout; + private TextView apiVersionText; + private SendTransactionTask.API apiVersion; /** * Mandatory empty constructor for the fragment manager to instantiate the @@ -160,9 +164,9 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue throw new AssertionError(); profiles.set(index, newProfile); - ProfilesRecyclerViewAdapter prva = ProfilesRecyclerViewAdapter.getInstance(); - if (prva != null) - prva.notifyItemChanged(index); + ProfilesRecyclerViewAdapter viewAdapter = ProfilesRecyclerViewAdapter.getInstance(); + if (viewAdapter != null) + viewAdapter.notifyItemChanged(index); if (mProfile.equals(Data.profile.getValue())) Data.profile.setValue(newProfile); @@ -234,6 +238,32 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue }); menu.show(); }); + apiVersionText = context.findViewById(R.id.api_version_text); + 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 -> { + switch (item.getItemId()) { + case R.id.api_version_menu_html: + apiVersion = SendTransactionTask.API.html; + break; + case R.id.api_version_menu_post_1_14: + apiVersion = SendTransactionTask.API.post_1_14; + break; + case R.id.api_version_menu_pre_1_15: + apiVersion = SendTransactionTask.API.pre_1_15; + break; + case R.id.api_version_menu_auto: + default: + apiVersion = SendTransactionTask.API.auto; + } + apiVersionText.setText(apiVersion.getDescription(getResources())); + return true; + }); + menu.show(); + }); authParams = context.findViewById(R.id.auth_params); useAuthentication = context.findViewById(R.id.enable_http_auth); userName = context.findViewById(R.id.auth_user_name); @@ -264,19 +294,21 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue hookClearErrorOnFocusListener(userName, userNameLayout); hookClearErrorOnFocusListener(password, passwordLayout); - int profileThemeId; + final int profileThemeId; if (mProfile != null) { profileName.setText(mProfile.getName()); postingPermitted.setChecked(mProfile.isPostingPermitted()); futureDates = mProfile.getFutureDates(); futureDatesText.setText(futureDates.getText(getResources())); + apiVersion = mProfile.getApiVersion(); + apiVersionText.setText(apiVersion.getDescription(getResources())); url.setText(mProfile.getUrl()); useAuthentication.setChecked(mProfile.isAuthEnabled()); authParams.setVisibility(mProfile.isAuthEnabled() ? View.VISIBLE : View.GONE); userName.setText(mProfile.isAuthEnabled() ? mProfile.getAuthUserName() : ""); password.setText(mProfile.isAuthEnabled() ? mProfile.getAuthPassword() : ""); preferredAccountsFilter.setText(mProfile.getPreferredAccountsFilter()); - profileThemeId = mProfile.getThemeId(); + profileThemeId = mProfile.getThemeHue(); } else { profileName.setText(""); @@ -284,12 +316,14 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue postingPermitted.setChecked(true); futureDates = MobileLedgerProfile.FutureDates.None; futureDatesText.setText(futureDates.getText(getResources())); + apiVersion = SendTransactionTask.API.auto; + apiVersionText.setText(apiVersion.getDescription(getResources())); useAuthentication.setChecked(false); authParams.setVisibility(View.GONE); userName.setText(""); password.setText(""); preferredAccountsFilter.setText(null); - profileThemeId = -1; + profileThemeId = getArguments().getInt(ARG_HUE, -1); } checkInsecureSchemeWithAuth(); @@ -330,7 +364,7 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue if (mProfile != null) { updateProfileFromUI(); -// debug("profiles", String.format("Selected item is %d", mProfile.getThemeId())); +// debug("profiles", String.format("Selected item is %d", mProfile.getThemeHue())); mProfile.storeInDB(); debug("profiles", "profile stored in DB"); triggerProfileChange(); @@ -364,15 +398,15 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue mProfile.setAuthEnabled(useAuthentication.isChecked()); mProfile.setAuthUserName(userName.getText()); mProfile.setAuthPassword(password.getText()); - mProfile.setThemeId(huePickerView.getTag()); + mProfile.setThemeHue(huePickerView.getTag()); mProfile.setFutureDates(futureDates); + mProfile.setApiVersion(apiVersion); } @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View rootView = inflater.inflate(R.layout.profile_detail, container, false); - return rootView; + return inflater.inflate(R.layout.profile_detail, container, false); } private boolean checkUrlValidity() { boolean valid = true;