Я разрабатываю приложение DatingApp, и в настоящее время я работаю над процессом входа / регистрации.Из-за некоторых аспектов проектирования у меня есть AuthActivity с MailAuthFragment (с кнопкой "продолжить"!) С EnterMailSubFragment (электронная почта + пароль EditText) / ConfirmMailSubFragmen t (экран, на котором отображается соответствующее письмо с кнопкой повторной проверки).Я хочу, чтобы MailAuthFragment выполнил все операции с базой данных, поэтому моему EnterMailSubFragment нужно только получить записи EditText и безопасно передать их родителю MailAuthFragment .Другая трудность заключается в следующем: я хочу, чтобы содержимое EnterMail и содержимое ConfirmMail перемещалось независимо от моей кнопки «продолжить».Для этого кнопка является частью родительского элемента MailAuthFragment .При нажатии кнопки «Продолжить» onClick()
в MailAuthFragment запускается следующий метод:
Fragment mCurrentFragment = getChildFragmentManager().findFragmentById(R.id.fragment_mailauth_container);
if(mCurrentFragment instanceof EnterMailSubFragment){
String mMail = ((EnterMailSubFragment) mCurrentFragment).getEmail();
String mPassword = ((EnterMailSubFragment) mCurrentFragment).getPassword();
if(mMail == null || mPassword == null){
return;
}
Так что мой EnterMailSubFragment имеет открытый метод getEmail() / getPassword()
.Я не уверен, является ли это безопасным способом передачи некоторых данных из ChildFragment в ParentFragment.Объявление их защищенными также кажется уязвимым.Я мог бы также представить себе использование такого интерфейса в моем ChildFragment EnterMailSubFragment
public interface MailSubFragmentListener{
void onSendEmail(String mEmail);
void onSendPassword(String mPassword);
}
private MailSubFragmentListener mCallback;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View mView = inflater.inflate(R.layout.subfragment_mailauth, container, false);
this.initUiWidgets(mView);
return mView;
}
public void setListener(MailSubFragmentListener mCallback){
this.mCallback = mCallback;
}
public static EnterMailSubFragment newInstance(MailSubFragmentListener mCallback){
EnterMailSubFragment mFragment = new EnterMailSubFragment();
mFragment.setListener(mCallback);
return mFragment;
}<br/>
И реализовать его в моем ParentFragment как
this.performFragmentTransaction(EnterMailSubFragment.newInstance(new EnterMailSubFragment.MailSubFragmentListener() {
@Override
public void onSendEmail(String mEmail) {
}
@Override
public void onSendPassword(String mPassword) {
}
}),"EnterMail", mEnterAnim);<br/>
Является ли какой-либо из этих подходов достаточно безопасным для передачи паролей и телефонных номеров?