diff --git a/ring-android/app/src/main/java/cx/ring/account/AccountEditionActivity.java b/ring-android/app/src/main/java/cx/ring/account/AccountEditionActivity.java index b3b948692962899511562c3210e82f3a487d2a41..f15109dcee52a56b3f23ff213a95930a4688bf25 100644 --- a/ring-android/app/src/main/java/cx/ring/account/AccountEditionActivity.java +++ b/ring-android/app/src/main/java/cx/ring/account/AccountEditionActivity.java @@ -59,6 +59,7 @@ import cx.ring.fragments.SecurityAccountFragment; public class AccountEditionActivity extends AppCompatActivity implements AccountEditionView { public static final String ACCOUNT_ID_KEY = AccountEditionActivity.class.getCanonicalName() + "accountid"; + public static final String ACCOUNT_HAS_PASSWORD_KEY = AccountEditionActivity.class.getCanonicalName() + "hasPassword"; public static final String TAG = AccountEditionActivity.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java b/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java index f274f5133383f24a8ef1ff1ef1424cbcbea555df..cd4ef5d11e8fdd796eb1e4dca4f3068a69b85118 100644 --- a/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java +++ b/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java @@ -146,14 +146,17 @@ public class RegisterNameDialog extends DialogFragment implements Observer<Servi ((RingApplication) getActivity().getApplication()).getRingInjectionComponent().inject(this); String accountId = ""; + boolean hasPassword = true; Bundle args = getArguments(); if (args != null) { accountId = args.getString(AccountEditionActivity.ACCOUNT_ID_KEY, accountId); + hasPassword = args.getBoolean(AccountEditionActivity.ACCOUNT_HAS_PASSWORD_KEY, true); } mUsernameTxt.setFilters(new InputFilter[]{new RegisteredNameFilter()}); mUsernameTextWatcher = new RegisteredNameTextWatcher(getActivity(), mAccountService, accountId, mUsernameTxtBox, mUsernameTxt); mUsernameTxt.addTextChangedListener(mUsernameTextWatcher); + mPasswordTxtBox.setVisibility(hasPassword ? View.VISIBLE : View.GONE); AlertDialog dialog = (AlertDialog) getDialog(); if (dialog != null) { diff --git a/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java b/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java index df6650b44b27368f9b811d8a12b5eb11f464233a..51ca7595595ebc2b78739a29be5c8e59c4ec9730 100644 --- a/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java +++ b/ring-android/app/src/main/java/cx/ring/account/RingAccountSummaryFragment.java @@ -56,6 +56,7 @@ import cx.ring.application.RingApplication; import cx.ring.dependencyinjection.RingInjectionComponent; import cx.ring.interfaces.BackHandlerInterface; import cx.ring.model.Account; +import cx.ring.model.ConfigKey; import cx.ring.mvp.BaseFragment; import cx.ring.utils.KeyboardVisibilityManager; import cx.ring.views.LinkNewDeviceLayout; @@ -126,6 +127,7 @@ public class RingAccountSummaryFragment extends BaseFragment<RingAccountSummaryP */ private DeviceAdapter mDeviceAdapter; private ProgressDialog mWaitDialog; + private boolean mAccountHasPassword = true; @Override public void onResume() { @@ -201,6 +203,9 @@ public class RingAccountSummaryFragment extends BaseFragment<RingAccountSummaryP Drawable wrapped = DrawableCompat.wrap(drawable); DrawableCompat.setTint(wrapped, color); mAccountStatus.setBackground(wrapped); + + mAccountHasPassword = account.getDetailBoolean(ConfigKey.ARCHIVE_HAS_PASSWORD); + mPasswordLayout.setVisibility(mAccountHasPassword ? View.VISIBLE : View.GONE); } }); } @@ -232,7 +237,7 @@ public class RingAccountSummaryFragment extends BaseFragment<RingAccountSummaryP private void showWizard() { mLinkAccountView.setVisibility(View.VISIBLE); - mPasswordLayout.setVisibility(View.VISIBLE); + mPasswordLayout.setVisibility(mAccountHasPassword ? View.VISIBLE : View.GONE); mEndBtn.setVisibility(View.GONE); mStartBtn.setVisibility(View.VISIBLE); mExportInfos.setText(R.string.account_link_export_info); @@ -331,6 +336,7 @@ public class RingAccountSummaryFragment extends BaseFragment<RingAccountSummaryP public void showUsernameRegistrationPopup() { Bundle args = new Bundle(); args.putString(AccountEditionActivity.ACCOUNT_ID_KEY, getArguments().getString(AccountEditionActivity.ACCOUNT_ID_KEY)); + args.putBoolean(AccountEditionActivity.ACCOUNT_HAS_PASSWORD_KEY, mAccountHasPassword); RegisterNameDialog registrationDialog = new RegisterNameDialog(); registrationDialog.setArguments(args); registrationDialog.setListener(this); diff --git a/ring-android/app/src/main/res/values/strings_account.xml b/ring-android/app/src/main/res/values/strings_account.xml index aaa0c53067a24f5622dc049a917a97244ba9be67..4f6e93b651631ce022690186cf499c9d02e4562b 100644 --- a/ring-android/app/src/main/res/values/strings_account.xml +++ b/ring-android/app/src/main/res/values/strings_account.xml @@ -184,7 +184,7 @@ along with this program; if not, write to the Free Software <string name="account_link_prompt_pin">Enter PIN</string> <string name="account_new_button">Create a Ring account</string> <string name="account_link_export_button">Link another device to this account</string> - <string name="account_link_export_info">To use this account on other devices, you must first expose it on Ring. This will generate a PIN code that you must enter on the new device to set up the account. The PIN is valid for 10 minutes. \n\nPlease provide your password to start:</string> + <string name="account_link_export_info">To use this account on other devices, you must first expose it on Ring. This will generate a PIN code that you must enter on the new device to set up the account. The PIN is valid for 10 minutes.</string> <string name="account_start_export_button">Generate Pin</string> <string name="account_end_export_button">close</string> <string name="account_end_export_infos">Your Pin is:\n\n%%\n\nTo complete the process, you need to open Ring on the new device. Create a new account with \"Link this device to an account\". Your pin is valid for 10 minutes.</string> diff --git a/ring-android/libringclient/src/main/java/cx/ring/model/ConfigKey.java b/ring-android/libringclient/src/main/java/cx/ring/model/ConfigKey.java index e03235cf392814ef99b40803978a55bacdb298e5..f8f6093f9b9a9871bdcf2621b004bd1777140401 100644 --- a/ring-android/libringclient/src/main/java/cx/ring/model/ConfigKey.java +++ b/ring-android/libringclient/src/main/java/cx/ring/model/ConfigKey.java @@ -65,6 +65,7 @@ public enum ConfigKey { VIDEO_PORT_MAX("Account.videoPortMax"), PRESENCE_ENABLE("Account.presenceEnabled"), ARCHIVE_PASSWORD("Account.archivePassword"), + ARCHIVE_HAS_PASSWORD("Account.archiveHasPassword"), ARCHIVE_PIN("Account.archivePIN"), DISPLAY_NAME("Account.displayName"), ETH_ACCOUNT("ETH.account"),