mirror of
https://github.com/m2049r/xmrwallet
synced 2025-09-06 02:27:11 +02:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1875e2df62 | ||
![]() |
347123d961 | ||
![]() |
f5ad07c2b0 | ||
![]() |
62695af9c6 | ||
![]() |
3b1c3d564b | ||
![]() |
b28a140b48 | ||
![]() |
75bba4a091 | ||
![]() |
cfb3c23003 |
@@ -8,8 +8,8 @@ android {
|
||||
applicationId "com.m2049r.xmrwallet"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 25
|
||||
versionCode 38
|
||||
versionName "1.1.7"
|
||||
versionCode 45
|
||||
versionName "1.2.4"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
|
@@ -293,5 +293,6 @@ public class GenerateReviewFragment extends Fragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.wallet_details_menu, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
}
|
@@ -48,8 +48,8 @@ import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.m2049r.xmrwallet.dialog.AboutFragment;
|
||||
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
||||
import com.m2049r.xmrwallet.dialog.DonationFragment;
|
||||
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
||||
import com.m2049r.xmrwallet.dialog.PrivacyFragment;
|
||||
import com.m2049r.xmrwallet.layout.Toolbar;
|
||||
import com.m2049r.xmrwallet.model.Wallet;
|
||||
@@ -132,7 +132,7 @@ public class LoginActivity extends AppCompatActivity
|
||||
});
|
||||
|
||||
if (Helper.getWritePermission(this)) {
|
||||
startLoginFragment();
|
||||
if (savedInstanceState == null) startLoginFragment();
|
||||
} else {
|
||||
Log.i(TAG, "Waiting for permissions");
|
||||
}
|
||||
@@ -1145,7 +1145,11 @@ public class LoginActivity extends AppCompatActivity
|
||||
}
|
||||
}
|
||||
|
||||
private class AsyncOpenWallet extends AsyncTask<WalletNode, Void, Boolean> {
|
||||
private class AsyncOpenWallet extends AsyncTask<WalletNode, Void, Integer> {
|
||||
final static int OK = 0;
|
||||
final static int TIMEOUT = 1;
|
||||
final static int INVALID = 2;
|
||||
final static int IOEX = 3;
|
||||
|
||||
WalletNode walletNode;
|
||||
|
||||
@@ -1156,45 +1160,57 @@ public class LoginActivity extends AppCompatActivity
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Boolean doInBackground(WalletNode... params) {
|
||||
if (params.length != 1) return false;
|
||||
protected Integer doInBackground(WalletNode... params) {
|
||||
if (params.length != 1) return INVALID;
|
||||
this.walletNode = params[0];
|
||||
if (!walletNode.isValid()) return false;
|
||||
if (!walletNode.isValid()) return INVALID;
|
||||
|
||||
Log.d(TAG, "checking " + walletNode.getAddress());
|
||||
|
||||
long timeDA = new Date().getTime();
|
||||
SocketAddress address = new InetSocketAddress(walletNode.host, walletNode.port);
|
||||
long timeDB = new Date().getTime();
|
||||
Log.d(TAG, "Resolving " + walletNode.host + " took " + (timeDB - timeDA) + "ms.");
|
||||
Socket socket = new Socket();
|
||||
long timeA = new Date().getTime();
|
||||
try {
|
||||
long timeDA = new Date().getTime();
|
||||
SocketAddress address = new InetSocketAddress(walletNode.host, walletNode.port);
|
||||
long timeDB = new Date().getTime();
|
||||
Log.d(TAG, "Resolving " + walletNode.host + " took " + (timeDB - timeDA) + "ms.");
|
||||
Socket socket = new Socket();
|
||||
long timeA = new Date().getTime();
|
||||
socket.connect(address, LoginActivity.DAEMON_TIMEOUT);
|
||||
socket.close();
|
||||
long timeB = new Date().getTime();
|
||||
long time = timeB - timeA;
|
||||
Log.d(TAG, "Daemon " + walletNode.host + " is " + time + "ms away.");
|
||||
return (time < LoginActivity.DAEMON_TIMEOUT ? OK : TIMEOUT);
|
||||
} catch (IOException ex) {
|
||||
Log.d(TAG, "Cannot reach daemon " + walletNode.host + "/" + walletNode.port + " because " + ex.getMessage());
|
||||
return false;
|
||||
return IOEX;
|
||||
} catch (IllegalArgumentException ex) {
|
||||
Log.d(TAG, "Cannot reach daemon " + walletNode.host + "/" + walletNode.port + " because " + ex.getMessage());
|
||||
return INVALID;
|
||||
}
|
||||
long timeB = new Date().getTime();
|
||||
long time = timeB - timeA;
|
||||
Log.d(TAG, "Daemon " + walletNode.host + " is " + time + "ms away.");
|
||||
return time < LoginActivity.DAEMON_TIMEOUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Boolean result) {
|
||||
protected void onPostExecute(Integer result) {
|
||||
super.onPostExecute(result);
|
||||
if (isDestroyed()) {
|
||||
return;
|
||||
}
|
||||
dismissProgressDialog();
|
||||
if (result) {
|
||||
Log.d(TAG, "selected wallet is ." + walletNode.name + ".");
|
||||
// now it's getting real, check if wallet exists
|
||||
promptAndStart(walletNode);
|
||||
} else {
|
||||
Toast.makeText(LoginActivity.this, getString(R.string.status_wallet_connect_timeout), Toast.LENGTH_LONG).show();
|
||||
switch (result) {
|
||||
case OK:
|
||||
Log.d(TAG, "selected wallet is ." + walletNode.name + ".");
|
||||
// now it's getting real, check if wallet exists
|
||||
promptAndStart(walletNode);
|
||||
break;
|
||||
case TIMEOUT:
|
||||
Toast.makeText(LoginActivity.this, getString(R.string.status_wallet_connect_timeout), Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case INVALID:
|
||||
Toast.makeText(LoginActivity.this, getString(R.string.status_wallet_node_invalid), Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case IOEX:
|
||||
Toast.makeText(LoginActivity.this, getString(R.string.status_wallet_connect_ioex), Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -116,8 +116,10 @@ public class ReceiveFragment extends Fragment {
|
||||
evAmount.setOnFailedExchangeListener(new ExchangeView.OnFailedExchangeListener() {
|
||||
@Override
|
||||
public void onFailedExchange() {
|
||||
clearQR();
|
||||
Toast.makeText(getActivity(), getString(R.string.message_exchange_failed), Toast.LENGTH_LONG).show();
|
||||
if (isAdded()) {
|
||||
clearQR();
|
||||
Toast.makeText(getActivity(), getString(R.string.message_exchange_failed), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@@ -24,7 +24,9 @@ import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.TextInputLayout;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.text.Editable;
|
||||
import android.text.InputType;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -137,6 +139,21 @@ public class SendFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
etAddress.getEditText().addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
etAddress.setError(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
});
|
||||
|
||||
etPaymentId.getEditText().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)) {
|
||||
@@ -150,6 +167,21 @@ public class SendFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
etPaymentId.getEditText().addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
etPaymentId.setError(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
});
|
||||
|
||||
bPrepareSend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -234,7 +266,8 @@ public class SendFragment extends Fragment {
|
||||
parentView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
((TextView) parentView.getChildAt(0)).setTextColor(getResources().getColor(R.color.moneroGray));
|
||||
if (isAdded())
|
||||
((TextView) parentView.getChildAt(0)).setTextColor(getResources().getColor(R.color.moneroGray));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -250,7 +283,8 @@ public class SendFragment extends Fragment {
|
||||
parentView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
((TextView) parentView.getChildAt(0)).setTextColor(getResources().getColor(R.color.moneroGray));
|
||||
if (isAdded())
|
||||
((TextView) parentView.getChildAt(0)).setTextColor(getResources().getColor(R.color.moneroGray));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@@ -36,8 +36,8 @@ import android.util.Log;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
||||
import com.m2049r.xmrwallet.dialog.DonationFragment;
|
||||
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
||||
import com.m2049r.xmrwallet.layout.Toolbar;
|
||||
import com.m2049r.xmrwallet.model.PendingTransaction;
|
||||
import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||
@@ -223,7 +223,7 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
|
||||
|
||||
Fragment walletFragment = new WalletFragment();
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.add(R.id.fragment_container, walletFragment).commit();
|
||||
.add(R.id.fragment_container, walletFragment, WalletFragment.TAG).commit();
|
||||
Log.d(TAG, "fragment added");
|
||||
|
||||
startWalletService();
|
||||
@@ -389,12 +389,12 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
|
||||
Log.d(TAG, "onRefreshed()");
|
||||
try {
|
||||
final WalletFragment walletFragment = (WalletFragment)
|
||||
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||
getSupportFragmentManager().findFragmentByTag(WalletFragment.TAG);
|
||||
if (wallet.isSynchronized()) {
|
||||
Log.d(TAG, "onRefreshed() synced");
|
||||
releaseWakeLock(); // the idea is to stay awake until synced
|
||||
if (!synced) {
|
||||
onProgress(null);
|
||||
if (!synced) { // first sync
|
||||
onProgress(-1);
|
||||
saveWallet(); // save on first sync
|
||||
synced = true;
|
||||
runOnUiThread(new Runnable() {
|
||||
@@ -447,6 +447,16 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
|
||||
} else {
|
||||
haveWallet = true;
|
||||
invalidateOptionsMenu();
|
||||
|
||||
final WalletFragment walletFragment = (WalletFragment)
|
||||
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
if (walletFragment != null) {
|
||||
walletFragment.onLoaded();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,10 +523,10 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
|
||||
public void onProgress(final String text) {
|
||||
try {
|
||||
final WalletFragment walletFragment = (WalletFragment)
|
||||
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||
getSupportFragmentManager().findFragmentByTag(WalletFragment.TAG);
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
walletFragment.onProgress(text);
|
||||
walletFragment.setProgress(text);
|
||||
}
|
||||
});
|
||||
} catch (ClassCastException ex) {
|
||||
@@ -530,10 +540,10 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment.
|
||||
public void onProgress(final int n) {
|
||||
try {
|
||||
final WalletFragment walletFragment = (WalletFragment)
|
||||
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||
getSupportFragmentManager().findFragmentByTag(WalletFragment.TAG);
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
walletFragment.onProgress(n);
|
||||
walletFragment.setProgress(n);
|
||||
}
|
||||
});
|
||||
} catch (ClassCastException ex) {
|
||||
|
@@ -49,7 +49,7 @@ import java.util.List;
|
||||
public class WalletFragment extends Fragment
|
||||
implements TransactionInfoAdapter.OnInteractionListener,
|
||||
AsyncExchangeRate.Listener {
|
||||
private static final String TAG = "WalletFragment";
|
||||
public static final String TAG = "WalletFragment";
|
||||
private TransactionInfoAdapter adapter;
|
||||
private NumberFormat formatter = NumberFormat.getInstance();
|
||||
|
||||
@@ -244,27 +244,40 @@ public class WalletFragment extends Fragment
|
||||
}
|
||||
}
|
||||
|
||||
public void setProgressText(final String text) {
|
||||
tvProgress.setText(text);
|
||||
boolean walletLoaded = false;
|
||||
|
||||
public void onLoaded() {
|
||||
walletLoaded = true;
|
||||
showReceive();
|
||||
}
|
||||
|
||||
public void onProgress(final String text) {
|
||||
if (text != null) {
|
||||
setProgressText(text);
|
||||
pbProgress.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
pbProgress.setVisibility(View.INVISIBLE);
|
||||
setProgressText(getString(R.string.status_working));
|
||||
onProgress(-1);
|
||||
private void showReceive() {
|
||||
if (walletLoaded) {
|
||||
bReceive.setVisibility(View.VISIBLE);
|
||||
bReceive.setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void onProgress(final int n) {
|
||||
if (n >= 0) {
|
||||
private String syncText = null;
|
||||
|
||||
public void setProgress(final String text) {
|
||||
syncText = text;
|
||||
tvProgress.setText(text);
|
||||
}
|
||||
|
||||
private int syncProgress = -1;
|
||||
|
||||
public void setProgress(final int n) {
|
||||
syncProgress = n;
|
||||
if (n > 100) {
|
||||
pbProgress.setIndeterminate(true);
|
||||
pbProgress.setVisibility(View.VISIBLE);
|
||||
} else if (n >= 0) {
|
||||
pbProgress.setIndeterminate(false);
|
||||
pbProgress.setProgress(n);
|
||||
} else {
|
||||
pbProgress.setIndeterminate(true);
|
||||
pbProgress.setVisibility(View.VISIBLE);
|
||||
} else { // <0
|
||||
pbProgress.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,7 +300,6 @@ public class WalletFragment extends Fragment
|
||||
Log.d(TAG, "updateStatus()");
|
||||
if (walletTitle == null) {
|
||||
setActivityTitle(wallet);
|
||||
onProgress(100); // of loading
|
||||
}
|
||||
long balance = wallet.getBalance();
|
||||
unlockedBalance = wallet.getUnlockedBalance();
|
||||
@@ -295,8 +307,6 @@ public class WalletFragment extends Fragment
|
||||
double amountXmr = Double.parseDouble(Helper.getDisplayAmount(balance - unlockedBalance)); // assume this cannot fail!
|
||||
String unconfirmed = Helper.getFormattedAmount(amountXmr, true);
|
||||
tvUnconfirmedAmount.setText(getResources().getString(R.string.xmr_unconfirmed_amount, unconfirmed));
|
||||
//tvUnconfirmedAmount.setText(getResources().getString(R.string.xmr_unconfirmed_amount,
|
||||
// Helper.getDisplayAmount(balance - unlockedBalance, Helper.DISPLAY_DIGITS_SHORT)));
|
||||
String sync = "";
|
||||
if (!activityCallback.hasBoundService())
|
||||
throw new IllegalStateException("WalletService not bound.");
|
||||
@@ -310,16 +320,18 @@ public class WalletFragment extends Fragment
|
||||
firstBlock = wallet.getBlockChainHeight();
|
||||
}
|
||||
int x = 100 - Math.round(100f * n / (1f * daemonHeight - firstBlock));
|
||||
//onProgress(getString(R.string.status_syncing) + " " + sync);
|
||||
if (x == 0) x = -1;
|
||||
onProgress(x);
|
||||
if (x == 0) x = 101; // indeterminate
|
||||
setProgress(x);
|
||||
ivSynced.setVisibility(View.GONE);
|
||||
} else {
|
||||
sync = getString(R.string.status_synced) + formatter.format(wallet.getBlockChainHeight());
|
||||
ivSynced.setVisibility(View.VISIBLE);
|
||||
}
|
||||
} else {
|
||||
sync = getString(R.string.status_wallet_connecting);
|
||||
setProgress(101);
|
||||
}
|
||||
setProgressText(sync);
|
||||
setProgress(sync);
|
||||
// TODO show connected status somewhere
|
||||
}
|
||||
|
||||
@@ -373,5 +385,8 @@ public class WalletFragment extends Fragment
|
||||
Log.d(TAG, "onResume()");
|
||||
activityCallback.setTitle(walletTitle, walletSubtitle);
|
||||
activityCallback.setToolbarButton(Toolbar.BUTTON_CLOSE);
|
||||
setProgress(syncProgress);
|
||||
setProgress(syncText);
|
||||
showReceive();
|
||||
}
|
||||
}
|
||||
|
@@ -103,6 +103,7 @@ public class WalletInfoAdapter extends RecyclerView.Adapter<WalletInfoAdapter.Vi
|
||||
final TextView tvAddress;
|
||||
final ImageButton ibOptions;
|
||||
WalletManager.WalletInfo infoItem;
|
||||
boolean popupOpen = false;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
@@ -112,10 +113,12 @@ public class WalletInfoAdapter extends RecyclerView.Adapter<WalletInfoAdapter.Vi
|
||||
ibOptions.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (popupOpen) return;
|
||||
//creating a popup menu
|
||||
PopupMenu popup = new PopupMenu(context, ibOptions);
|
||||
//inflating menu from xml resource
|
||||
popup.inflate(R.menu.list_context_menu);
|
||||
popupOpen = true;
|
||||
//adding click listener
|
||||
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
@@ -128,6 +131,12 @@ public class WalletInfoAdapter extends RecyclerView.Adapter<WalletInfoAdapter.Vi
|
||||
});
|
||||
//displaying the popup
|
||||
popup.show();
|
||||
popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(PopupMenu menu) {
|
||||
popupOpen = false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
@@ -481,7 +481,7 @@ public class WalletService extends Service {
|
||||
showProgress(100);
|
||||
}
|
||||
showProgress(getString(R.string.status_wallet_connecting));
|
||||
showProgress(-1);
|
||||
showProgress(101);
|
||||
// if we try to refresh the history here we get occasional segfaults!
|
||||
// doesnt matter since we update as soon as we get a new block anyway
|
||||
Log.d(TAG, "start() done");
|
||||
|
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/moneroText" android:state_enabled="false" />
|
||||
<item android:color="@color/moneroWhite" />
|
||||
</selector>
|
@@ -17,11 +17,11 @@
|
||||
9.24995106,8.48677287 C9.24995106,5.61623564 11.5770468,3.28929415
|
||||
14.4474298,3.28929415 C17.3178128,3.28929415 19.6449085,5.61623564
|
||||
19.6449085,8.48677287 C19.6449085,11.3571559 17.3178128,13.6840973
|
||||
14.4474298,13.6840973 M14.4474298,-4.62765957e-05 C8.23695638,-4.62765957e-05
|
||||
2.82706809,3.42395904 3.08510638e-05,8.48692713 C2.82706809,13.5494324
|
||||
14.4474298,13.6840973 M14.4474298,-0.0000463 C8.23695638,-0.0000463
|
||||
2.82706809,3.42395904 0.0000309,8.48692713 C2.82706809,13.5494324
|
||||
8.23695638,16.9734378 14.4474298,16.9734378 C20.6579032,16.9734378
|
||||
26.0676372,13.5494324 28.8948287,8.48692713 C26.0676372,3.42395904
|
||||
20.6579032,-4.62765957e-05 14.4474298,-4.62765957e-05"
|
||||
20.6579032,-0.0000463 14.4474298,-0.0000463"
|
||||
android:strokeWidth="1" />
|
||||
</group>
|
||||
</group>
|
||||
|
@@ -3,9 +3,9 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="16sp"
|
||||
android:paddingStart="16sp"
|
||||
android:paddingTop="8sp">
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50sp"
|
||||
android:layout_height="48dp"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
|
||||
<TextView
|
||||
|
@@ -2,9 +2,9 @@
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="8sp"
|
||||
android:paddingEnd="16sp"
|
||||
android:paddingStart="16sp">
|
||||
android:paddingTop="8dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingStart="16dp">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="100sp"
|
||||
android:layout_height="100dp"
|
||||
android:src="@drawable/gunther_donate" />
|
||||
|
||||
<TextView
|
||||
|
@@ -3,7 +3,7 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="8sp">
|
||||
android:layout_margin="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@@ -3,9 +3,9 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="16sp"
|
||||
android:paddingStart="16sp"
|
||||
android:paddingTop="8sp">
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50sp"
|
||||
android:layout_height="48dp"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
|
||||
<TextView
|
||||
|
@@ -3,7 +3,7 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="8sp">
|
||||
android:layout_margin="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -39,7 +39,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/label_login_wallets" />
|
||||
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
|
@@ -2,9 +2,9 @@
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="8sp"
|
||||
android:paddingEnd="16sp"
|
||||
android:paddingStart="16sp">
|
||||
android:paddingTop="8dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingStart="16dp">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50sp"
|
||||
android:layout_height="48dp"
|
||||
android:src="@drawable/ic_eye_black_24dp" />
|
||||
|
||||
<TextView
|
||||
|
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="8sp"
|
||||
android:layout_margin="8dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ProgressBar
|
||||
@@ -12,7 +12,7 @@
|
||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone" />
|
||||
|
||||
@@ -103,10 +103,10 @@
|
||||
style="@style/MoneroButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:layout_marginTop="4sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:enabled="false"
|
||||
android:minHeight="36sp"
|
||||
android:minHeight="36dp"
|
||||
android:text="@string/receive_generate_hint" />
|
||||
|
||||
<ImageView
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
<EditText
|
||||
android:id="@+id/etDummy"
|
||||
android:layout_width="0sp"
|
||||
android:layout_height="0sp" />
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp" />
|
||||
|
||||
</LinearLayout>
|
@@ -3,7 +3,7 @@
|
||||
android:id="@+id/scrollview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="8sp">
|
||||
android:layout_margin="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -137,7 +137,7 @@
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="@dimen/section_top"
|
||||
android:background="?android:selectableItemBackground"
|
||||
android:drawablePadding="4sp"
|
||||
android:drawablePadding="4dp"
|
||||
android:drawableStart="@drawable/ic_add_circle_outline"
|
||||
android:text="@string/label_wallet_advanced_details"
|
||||
android:visibility="gone" />
|
||||
|
@@ -5,7 +5,7 @@
|
||||
android:id="@+id/scrollview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="8sp">
|
||||
android:layout_margin="8dp">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
@@ -15,7 +15,7 @@
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4sp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="10">
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginStart="16sp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="@drawable/ic_scan"
|
||||
android:text="@string/send_qr_hint" />
|
||||
</LinearLayout>
|
||||
@@ -53,8 +53,8 @@
|
||||
android:id="@+id/evAmount"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16sp"
|
||||
android:layout_marginTop="0sp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingEnd="56dp"
|
||||
android:paddingStart="56dp" />
|
||||
@@ -62,7 +62,7 @@
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="10">
|
||||
|
||||
@@ -91,9 +91,9 @@
|
||||
android:id="@+id/bPaymentId"
|
||||
style="@style/MoneroText.Button.Small"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56sp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginStart="8sp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:background="?android:selectableItemBackground"
|
||||
android:drawableTop="@drawable/ic_settings_orange_24dp"
|
||||
android:text="@string/send_generate_paymentid_hint"
|
||||
@@ -102,8 +102,8 @@
|
||||
|
||||
<EditText
|
||||
android:id="@+id/etDummy"
|
||||
android:layout_width="0sp"
|
||||
android:layout_height="0sp" />
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -116,7 +116,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|end"
|
||||
android:layout_marginEnd="8sp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="Advanced:"
|
||||
android:textAlignment="textEnd" />
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
style="@style/MoneroSpinnerGray"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8sp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_weight="1"
|
||||
android:entries="@array/mixin"
|
||||
android:textAlignment="center" />
|
||||
@@ -146,10 +146,10 @@
|
||||
style="@style/MoneroButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:layout_marginTop="4sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:enabled="true"
|
||||
android:minHeight="36sp"
|
||||
android:minHeight="36dp"
|
||||
android:text="@string/send_prepare_hint" />
|
||||
|
||||
<ProgressBar
|
||||
@@ -164,8 +164,8 @@
|
||||
android:id="@+id/llConfirmSend"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:layout_marginTop="4sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
@@ -174,8 +174,8 @@
|
||||
style="@style/MoneroButton.Alert"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:minHeight="36sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:minHeight="36dp"
|
||||
android:text="@string/send_dispose_hint" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -187,9 +187,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxAmountLabel"
|
||||
style="@style/MoneroLabel.Caps"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8sp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/send_amount_label"
|
||||
android:textAlignment="textEnd" />
|
||||
@@ -197,9 +197,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxAmount"
|
||||
style="@style/MoneroText"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8sp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_weight="2"
|
||||
android:textAlignment="textEnd"
|
||||
tools:text="143.008000000000" />
|
||||
@@ -214,9 +214,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxFeeLabel"
|
||||
style="@style/MoneroLabel.Caps.Gray"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4sp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/send_fee_label"
|
||||
android:textAlignment="textEnd" />
|
||||
@@ -224,9 +224,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxFee"
|
||||
style="@style/MoneroText.Gray"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8sp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_weight="2"
|
||||
android:textAlignment="textEnd"
|
||||
tools:text="0.006817000000" />
|
||||
@@ -241,9 +241,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxTotalLabel"
|
||||
style="@style/MoneroLabel.Caps.Black"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8sp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/send_total_label"
|
||||
android:textAlignment="textEnd" />
|
||||
@@ -251,9 +251,9 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxTotal"
|
||||
style="@style/MoneroText.Black"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8sp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_weight="2"
|
||||
android:textAlignment="textEnd"
|
||||
tools:text="143.014817000000" />
|
||||
@@ -264,7 +264,7 @@
|
||||
style="@style/MoneroEdit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4sp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:backgroundTint="@color/moneroGray"
|
||||
android:hint="@string/send_notes_hint"
|
||||
android:imeOptions="actionDone"
|
||||
@@ -276,10 +276,10 @@
|
||||
style="@style/MoneroButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="4sp"
|
||||
android:layout_marginTop="4sp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:enabled="false"
|
||||
android:minHeight="36sp"
|
||||
android:minHeight="36dp"
|
||||
android:text="@string/send_send_hint" />
|
||||
|
||||
<Button
|
||||
@@ -287,8 +287,8 @@
|
||||
style="@style/MoneroButton.ReallySend"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8sp"
|
||||
android:layout_marginTop="16sp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:enabled="false"
|
||||
android:padding="8dp"
|
||||
android:text="@string/send_really_send_hint"
|
||||
|
@@ -3,7 +3,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8sp"
|
||||
android:layout_margin="8dp"
|
||||
android:fillViewport="true">
|
||||
|
||||
<LinearLayout
|
||||
@@ -15,10 +15,10 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="16sp">
|
||||
android:padding="16dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="2"
|
||||
@@ -47,10 +47,10 @@
|
||||
<TextView
|
||||
android:id="@+id/tvTxTimestamp"
|
||||
style="@style/MoneroText.PosDate"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginStart="24sp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:selectAllOnFocus="true"
|
||||
@@ -59,7 +59,7 @@
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:shrinkColumns="1">
|
||||
@@ -82,7 +82,7 @@
|
||||
<EditText
|
||||
android:id="@+id/etTxNotes"
|
||||
style="@style/MoneroEdit"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="8"
|
||||
android:backgroundTint="@color/moneroGray"
|
||||
@@ -93,10 +93,10 @@
|
||||
<Button
|
||||
android:id="@+id/bTxNotes"
|
||||
style="@style/MoneroButton.Small"
|
||||
android:layout_width="0sp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginBottom="8sp"
|
||||
android:layout_marginTop="8sp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_weight="2"
|
||||
android:enabled="true"
|
||||
android:text="@string/tx_button_notes" />
|
||||
@@ -110,14 +110,14 @@
|
||||
style="@style/MoneroLabel.Small"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="end"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/tx_destination" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDestination"
|
||||
style="@style/MoneroText"
|
||||
android:gravity="start"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:textIsSelectable="true" />
|
||||
</TableRow>
|
||||
@@ -128,14 +128,14 @@
|
||||
style="@style/MoneroLabel.Small"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="end"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/tx_paymentId" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTxPaymentId"
|
||||
style="@style/MoneroText"
|
||||
android:gravity="start"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:textIsSelectable="true" />
|
||||
</TableRow>
|
||||
@@ -146,14 +146,14 @@
|
||||
style="@style/MoneroLabel.Small"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="end"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/tx_id" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTxId"
|
||||
style="@style/MoneroText"
|
||||
android:gravity="start"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:textIsSelectable="true" />
|
||||
</TableRow>
|
||||
@@ -164,14 +164,14 @@
|
||||
style="@style/MoneroLabel.Small"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="end"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/tx_key" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTxKey"
|
||||
style="@style/MoneroText"
|
||||
android:gravity="start"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:textIsSelectable="true" />
|
||||
</TableRow>
|
||||
@@ -182,14 +182,14 @@
|
||||
style="@style/MoneroLabel.Small"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="end"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/tx_blockheight" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTxBlockheight"
|
||||
style="@style/MoneroText"
|
||||
android:gravity="start"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:textIsSelectable="true" />
|
||||
</TableRow>
|
||||
@@ -200,14 +200,14 @@
|
||||
style="@style/MoneroLabel.Small"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="end"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:text="@string/tx_transfers" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTxTransfers"
|
||||
style="@style/MoneroText"
|
||||
android:gravity="start"
|
||||
android:padding="8sp"
|
||||
android:padding="8dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:textIsSelectable="true" />
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="8sp"
|
||||
android:layout_margin="8dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
@@ -23,8 +23,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="0sp"
|
||||
android:layout_marginStart="8sp"
|
||||
android:layout_marginEnd="0dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
@@ -84,7 +84,7 @@
|
||||
android:id="@+id/ivSynced"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8sp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:src="@drawable/ic_done_all"
|
||||
android:visibility="gone" />
|
||||
|
||||
@@ -111,8 +111,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.v7.widget.RecyclerView xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
@@ -137,11 +136,11 @@
|
||||
android:layout_margin="8dp"
|
||||
android:layout_weight="1"
|
||||
android:drawableStart="@drawable/ic_hand"
|
||||
android:enabled="true"
|
||||
android:enabled="false"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingStart="16dp"
|
||||
android:text="@string/label_wallet_receive"
|
||||
android:visibility="visible" />
|
||||
android:visibility="invisible" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/bSend"
|
||||
@@ -151,7 +150,7 @@
|
||||
android:layout_margin="8dp"
|
||||
android:layout_weight="1"
|
||||
android:drawableStart="@drawable/ic_send"
|
||||
android:enabled="true"
|
||||
android:enabled="false"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingStart="16dp"
|
||||
android:text="@string/label_wallet_send"
|
||||
|
@@ -46,11 +46,11 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="16sp"
|
||||
android:layout_marginStart="16sp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_weight="13"
|
||||
android:gravity="start"
|
||||
android:text="0123456789abcdef" />
|
||||
tools:text="0123456789abcdef" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tx_datetime"
|
||||
@@ -60,7 +60,7 @@
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="6"
|
||||
android:gravity="center"
|
||||
android:text="2017-05-22 21:32" />
|
||||
tools:text="2017-05-22 21:32" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/card_view"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -9,35 +10,31 @@
|
||||
card_view:cardCornerRadius="1dp"
|
||||
card_view:cardElevation="8dp">
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/selector_login"
|
||||
android:orientation="horizontal">
|
||||
android:background="@drawable/selector_login">
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
style="@style/MoneroText.Label"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="32dp"
|
||||
android:layout_marginRight="32dp"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
android:layout_marginStart="48dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_toStartOf="@+id/ibOptions"
|
||||
tools:text="My Wallet" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
style="@style/MoneroText.Label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="My Wallet" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAddress"
|
||||
style="@style/MoneroText.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/tvName"
|
||||
android:text="4AdkPJox...g3viqCuk" />
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:id="@+id/tvAddress"
|
||||
style="@style/MoneroText.Small"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/tvName"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginStart="48dp"
|
||||
android:layout_toStartOf="@+id/ibOptions"
|
||||
tools:text="4AdkPJox...g3viqCuk" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ibOptions"
|
||||
|
@@ -3,14 +3,15 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/layout_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp">
|
||||
android:padding="8dp">
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/etPassword"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:passwordToggleEnabled="true"
|
||||
app:errorEnabled="true">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
|
@@ -4,7 +4,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp" >
|
||||
android:padding="8dp" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvRenameLabel"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:showIn="LinearLayout"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout
|
||||
@@ -11,7 +12,7 @@
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/sCurrencyA"
|
||||
android:layout_width="56sp"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:entries="@array/currency"
|
||||
|
@@ -14,10 +14,10 @@
|
||||
<string name="donation_credits"><![CDATA[
|
||||
<b>Credits</b>
|
||||
<br/>
|
||||
m2049r, baltsar777, rehrar, anhdres,
|
||||
keejef, TheMonera, EarlOfEgo
|
||||
m2049r, baltsar777, anhdres, keejef,
|
||||
rehrar, EarlOfEgo et al.
|
||||
<br/><br/>
|
||||
<a href="www.xmrujo.com">www.xmrujo.com</a>
|
||||
<a href="https://monerujo.io/">monerujo.io</a>
|
||||
]]></string>
|
||||
|
||||
<string name="privacy_policy"><![CDATA[
|
||||
@@ -53,14 +53,14 @@
|
||||
<h2>Changes to this Privacy Policy</h2>
|
||||
<p>We may update this privacy policy from time to time. We will notify
|
||||
you of any changes by posting the new privacy policy in the app and on the
|
||||
website (www.xmrujo.com)
|
||||
website (www.monerujo.io)
|
||||
You are advised to review this privacy policy periodically for any changes.
|
||||
<p>This Privacy Policy was last updated: 2nd November, 2017.
|
||||
<p>This Privacy Policy was last updated: 10th November, 2017.
|
||||
</p>
|
||||
<h2>Contact Us</h2>
|
||||
<p>If you have any questions about our privacy policy,
|
||||
or how your data is being collected and processed,
|
||||
please e-mail privacy@xmrujo.com.
|
||||
please e-mail privacy@monerujo.io.
|
||||
</p>
|
||||
]]></string>
|
||||
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<color name="give">#FFFF6105</color>
|
||||
|
||||
<color name="moneroOrange">#cc5100</color>
|
||||
<color name="moneroWhite">#e2e2e2</color>
|
||||
<color name="moneroWhite">#ffffff</color>
|
||||
<color name="moneroBlack">#000000</color>
|
||||
<color name="moneroGray">#FD9B9B9B</color>
|
||||
|
||||
|
@@ -10,9 +10,9 @@
|
||||
|
||||
<dimen name="event_title_text_size">@dimen/abc_text_size_title_material_toolbar</dimen>
|
||||
|
||||
<dimen name="header_top_first">12sp</dimen>
|
||||
<dimen name="header_top">16sp</dimen>
|
||||
<dimen name="section_top">24sp</dimen>
|
||||
<dimen name="data_top">8sp</dimen>
|
||||
<dimen name="header_top_first">12dp</dimen>
|
||||
<dimen name="header_top">16dp</dimen>
|
||||
<dimen name="section_top">24dp</dimen>
|
||||
<dimen name="data_top">8dp</dimen>
|
||||
|
||||
</resources>
|
||||
|
@@ -45,8 +45,11 @@
|
||||
<string name="status_wallet_unloaded">Wallet saved</string>
|
||||
<string name="status_wallet_unload_failed">Wallet save failed!</string>
|
||||
<string name="status_wallet_connecting">Connecting …</string>
|
||||
<string name="status_wallet_connect_failed">Daemon connection failed!\nCheck username/password</string>
|
||||
<string name="status_wallet_connect_timeout">Daemon connection timed out!\nTry again or another!</string>
|
||||
<string name="status_wallet_connect_failed">Node connection failed!\nCheck username/password</string>
|
||||
<string name="status_wallet_connect_timeout">Node connection timed out!\nTry again or another.</string>
|
||||
<string name="status_wallet_node_invalid">Node invalid!\nTry another.</string>
|
||||
<string name="status_wallet_connect_ioex">Cannot reach node!\nTry again or another.</string>
|
||||
|
||||
<string name="status_working">Working on it …</string>
|
||||
<string name="status_wallet_disconnected">Disconnected</string>
|
||||
|
||||
|
@@ -179,7 +179,7 @@
|
||||
|
||||
<style name="MoneroButton" parent="@style/Widget.AppCompat.Button">
|
||||
<item name="android:background">@drawable/button_selector</item>
|
||||
<item name="android:textColor">@color/text_color</item>
|
||||
<item name="android:textColor">@color/moneroWhite</item>
|
||||
<item name="android:textAppearance">@style/MoneroLabel</item>
|
||||
<item name="android:textAllCaps">true</item>
|
||||
</style>
|
||||
@@ -194,16 +194,13 @@
|
||||
</style>
|
||||
|
||||
<style name="MoneroButton.ReallySend">
|
||||
<item name="android:textColor">@color/white</item>
|
||||
</style>
|
||||
|
||||
<style name="MoneroButton.Take">
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:background">@color/take</item>
|
||||
</style>
|
||||
|
||||
<style name="MoneroButton.Give">
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:background">@color/give</item>
|
||||
</style>
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user