|
|
|
@ -9,26 +9,31 @@ import android.view.KeyEvent;
|
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
|
import android.view.View;
|
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
|
import android.view.WindowManager;
|
|
|
|
|
import android.view.inputmethod.EditorInfo;
|
|
|
|
|
import android.view.inputmethod.InputMethodManager;
|
|
|
|
|
import android.widget.Button;
|
|
|
|
|
import android.widget.EditText;
|
|
|
|
|
import android.widget.LinearLayout;
|
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
import com.m2049r.xmrwallet.model.WalletManager;
|
|
|
|
|
import com.m2049r.xmrwallet.util.Helper;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
|
|
// TODO: somehow show which net we are generating for
|
|
|
|
|
|
|
|
|
|
public class GenerateFragment extends Fragment {
|
|
|
|
|
|
|
|
|
|
EditText etWalletName;
|
|
|
|
|
EditText etWalletPassword;
|
|
|
|
|
Button bGenerate;
|
|
|
|
|
LinearLayout llAccept;
|
|
|
|
|
TextView tvWalletAddress;
|
|
|
|
|
TextView tvWalletMnemonic;
|
|
|
|
|
Button bAccept;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
|
|
|
Bundle savedInstanceState) {
|
|
|
|
@ -39,14 +44,20 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
etWalletPassword = (EditText) view.findViewById(R.id.etWalletPassword);
|
|
|
|
|
bGenerate = (Button) view.findViewById(R.id.bGenerate);
|
|
|
|
|
llAccept = (LinearLayout) view.findViewById(R.id.llAccept);
|
|
|
|
|
tvWalletAddress = (TextView) view.findViewById(R.id.tvWalletAddress);
|
|
|
|
|
tvWalletMnemonic = (TextView) view.findViewById(R.id.tvWalletMnemonic);
|
|
|
|
|
bAccept = (Button) view.findViewById(R.id.bAccept);
|
|
|
|
|
|
|
|
|
|
boolean testnet = WalletManager.getInstance().isTestNet();
|
|
|
|
|
tvWalletMnemonic.setTextIsSelectable(testnet);
|
|
|
|
|
|
|
|
|
|
etWalletName.requestFocus();
|
|
|
|
|
Helper.showKeyboard(getActivity());
|
|
|
|
|
setGenerateEnabled();
|
|
|
|
|
etWalletName.addTextChangedListener(new TextWatcher() {
|
|
|
|
|
@Override
|
|
|
|
|
public void afterTextChanged(Editable editable) {
|
|
|
|
|
setGenerateEnabled();
|
|
|
|
|
showMnemonic("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -60,14 +71,15 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
etWalletName.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
|
|
|
imm.showSoftInput(etWalletName, InputMethodManager.SHOW_IMPLICIT);
|
|
|
|
|
Helper.showKeyboard(getActivity());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
etWalletName.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
|
|
|
|
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
|
|
|
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
|
|
|
|
|
etWalletPassword.requestFocus();
|
|
|
|
|
if (etWalletName.length() > 0) {
|
|
|
|
|
etWalletPassword.requestFocus();
|
|
|
|
|
} // otherwise ignore
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
@ -77,14 +89,27 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
etWalletPassword.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
|
|
|
imm.showSoftInput(etWalletPassword, InputMethodManager.SHOW_IMPLICIT);
|
|
|
|
|
Helper.showKeyboard(getActivity());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
etWalletPassword.addTextChangedListener(new TextWatcher() {
|
|
|
|
|
@Override
|
|
|
|
|
public void afterTextChanged(Editable editable) {
|
|
|
|
|
showMnemonic("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
etWalletPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
|
|
|
|
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
|
|
|
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
|
|
|
|
|
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
|
|
|
|
|
Helper.hideKeyboard(getActivity());
|
|
|
|
|
generateWallet();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
@ -95,7 +120,7 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
bGenerate.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
// TODO make keyboard go away
|
|
|
|
|
Helper.hideKeyboard(getActivity());
|
|
|
|
|
generateWallet();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
@ -108,6 +133,7 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
bAccept.setEnabled(false);
|
|
|
|
|
llAccept.setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
return view;
|
|
|
|
|
}
|
|
|
|
@ -115,8 +141,8 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
private void generateWallet() {
|
|
|
|
|
String name = etWalletName.getText().toString();
|
|
|
|
|
if (name.length() == 0) return;
|
|
|
|
|
File walletFile = new File(activityCallback.getStorageRoot(), name + ".keys");
|
|
|
|
|
if (walletFile.exists()) {
|
|
|
|
|
String walletPath = Helper.getWalletPath(getActivity(), name);
|
|
|
|
|
if (WalletManager.getInstance().walletExists(walletPath)) {
|
|
|
|
|
Toast.makeText(getActivity(), getString(R.string.generate_wallet_exists), Toast.LENGTH_LONG).show();
|
|
|
|
|
etWalletName.requestFocus();
|
|
|
|
|
return;
|
|
|
|
@ -137,23 +163,18 @@ public class GenerateFragment extends Fragment {
|
|
|
|
|
bGenerate.setEnabled(etWalletName.length() > 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onResume() {
|
|
|
|
|
super.onResume();
|
|
|
|
|
setGenerateEnabled();
|
|
|
|
|
etWalletName.requestFocus();
|
|
|
|
|
InputMethodManager imgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
|
|
|
imgr.showSoftInput(etWalletName, InputMethodManager.SHOW_IMPLICIT);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void showMnemonic(String mnemonic) {
|
|
|
|
|
setGenerateEnabled();
|
|
|
|
|
if (mnemonic.length() > 0) {
|
|
|
|
|
tvWalletMnemonic.setText(mnemonic);
|
|
|
|
|
bAccept.setEnabled(true);
|
|
|
|
|
llAccept.setVisibility(View.VISIBLE);
|
|
|
|
|
} else {
|
|
|
|
|
tvWalletMnemonic.setText(getActivity().getString(R.string.generate_seed));
|
|
|
|
|
bAccept.setEnabled(false);
|
|
|
|
|
if (llAccept.getVisibility() != View.GONE) {
|
|
|
|
|
tvWalletMnemonic.setText(getActivity().getString(R.string.generate_seed));
|
|
|
|
|
bAccept.setEnabled(false);
|
|
|
|
|
llAccept.setVisibility(View.GONE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|