]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java
merge 'auto' api version handling branch with 'default'
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / profiles / ProfileDetailFragment.java
index 8ec562b6b5cee139ef00bade5ba2f4206f0b739a..755c6f2b18ef85c4108416904cfa4e3d236d762b 100644 (file)
@@ -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;
@@ -96,6 +97,9 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue
     private TextView futureDatesText;
     private MobileLedgerProfile.FutureDates futureDates;
     private View futureDatesLayout;
+    private TextView apiVersionText;
+    private View apiVersionLayout;
+    private SendTransactionTask.API apiVersion;
 
     /**
      * Mandatory empty constructor for the fragment manager to instantiate the
@@ -234,6 +238,32 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue
                    });
                    menu.show();
                });
+        apiVersionLayout = context.findViewById(R.id.api_version_layout);
+        apiVersionText = context.findViewById(R.id.api_version_text);
+        apiVersionLayout.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);
@@ -270,6 +300,8 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue
             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);
@@ -284,6 +316,8 @@ 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("");
@@ -366,13 +400,13 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue
         mProfile.setAuthPassword(password.getText());
         mProfile.setThemeId(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;