Popup notice for new CrAzYpass feature (#254)
* make add notices more flexible * and add CrAzYpass notice * added notice translations
This commit is contained in:
parent
0b17ed4322
commit
1115bbb706
|
@ -18,12 +18,15 @@ package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.res.ColorStateList;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.design.widget.FloatingActionButton;
|
import android.support.design.widget.FloatingActionButton;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
@ -38,7 +41,9 @@ import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
@ -49,6 +54,7 @@ import com.m2049r.xmrwallet.model.NetworkType;
|
||||||
import com.m2049r.xmrwallet.model.WalletManager;
|
import com.m2049r.xmrwallet.model.WalletManager;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.NodeList;
|
import com.m2049r.xmrwallet.util.NodeList;
|
||||||
|
import com.m2049r.xmrwallet.util.Notice;
|
||||||
import com.m2049r.xmrwallet.widget.DropDownEditText;
|
import com.m2049r.xmrwallet.widget.DropDownEditText;
|
||||||
import com.m2049r.xmrwallet.widget.Toolbar;
|
import com.m2049r.xmrwallet.widget.Toolbar;
|
||||||
|
|
||||||
|
@ -71,9 +77,6 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
private DropDownEditText etDaemonAddress;
|
private DropDownEditText etDaemonAddress;
|
||||||
private ArrayAdapter<String> nodeAdapter;
|
private ArrayAdapter<String> nodeAdapter;
|
||||||
|
|
||||||
private View llXmrToEnabled;
|
|
||||||
private View ibXmrToInfoClose;
|
|
||||||
|
|
||||||
private Listener activityCallback;
|
private Listener activityCallback;
|
||||||
|
|
||||||
// Container Activity must implement this interface
|
// Container Activity must implement this interface
|
||||||
|
@ -173,23 +176,8 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
|
|
||||||
etDummy = (EditText) view.findViewById(R.id.etDummy);
|
etDummy = (EditText) view.findViewById(R.id.etDummy);
|
||||||
|
|
||||||
llXmrToEnabled = view.findViewById(R.id.llXmrToEnabled);
|
ViewGroup llNotice = (ViewGroup) view.findViewById(R.id.llNotice);
|
||||||
llXmrToEnabled.setOnClickListener(new View.OnClickListener() {
|
Notice.showAll(llNotice,".*_login");
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
HelpFragment.display(getChildFragmentManager(), R.string.help_xmrto);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ibXmrToInfoClose = view.findViewById(R.id.ibXmrToInfoClose);
|
|
||||||
ibXmrToInfoClose.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
llXmrToEnabled.setVisibility(View.GONE);
|
|
||||||
showXmrtoEnabled = false;
|
|
||||||
saveXmrToPrefs();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
etDaemonAddress = (DropDownEditText) view.findViewById(R.id.etDaemonAddress);
|
etDaemonAddress = (DropDownEditText) view.findViewById(R.id.etDaemonAddress);
|
||||||
nodeAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_dropdown_item_1line);
|
nodeAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_dropdown_item_1line);
|
||||||
|
@ -237,9 +225,6 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
});
|
});
|
||||||
|
|
||||||
loadPrefs();
|
loadPrefs();
|
||||||
if (!showXmrtoEnabled) {
|
|
||||||
llXmrToEnabled.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -379,7 +364,6 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
|
|
||||||
private static final String PREF_DAEMON_TESTNET = "daemon_testnet";
|
private static final String PREF_DAEMON_TESTNET = "daemon_testnet";
|
||||||
private static final String PREF_DAEMON_MAINNET = "daemon_mainnet";
|
private static final String PREF_DAEMON_MAINNET = "daemon_mainnet";
|
||||||
private static final String PREF_SHOW_XMRTO_ENABLED = "info_xmrto_enabled_login";
|
|
||||||
|
|
||||||
private static final String PREF_DAEMONLIST_MAINNET =
|
private static final String PREF_DAEMONLIST_MAINNET =
|
||||||
"node.moneroworld.com:18089;node.xmrbackb.one;node.xmr.be";
|
"node.moneroworld.com:18089;node.xmrbackb.one;node.xmr.be";
|
||||||
|
@ -390,23 +374,12 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
private NodeList daemonTestNet;
|
private NodeList daemonTestNet;
|
||||||
private NodeList daemonMainNet;
|
private NodeList daemonMainNet;
|
||||||
|
|
||||||
boolean showXmrtoEnabled = true;
|
|
||||||
|
|
||||||
void loadPrefs() {
|
void loadPrefs() {
|
||||||
SharedPreferences sharedPref = activityCallback.getPrefs();
|
SharedPreferences sharedPref = activityCallback.getPrefs();
|
||||||
|
|
||||||
daemonMainNet = new NodeList(sharedPref.getString(PREF_DAEMON_MAINNET, PREF_DAEMONLIST_MAINNET));
|
daemonMainNet = new NodeList(sharedPref.getString(PREF_DAEMON_MAINNET, PREF_DAEMONLIST_MAINNET));
|
||||||
daemonTestNet = new NodeList(sharedPref.getString(PREF_DAEMON_TESTNET, PREF_DAEMONLIST_TESTNET));
|
daemonTestNet = new NodeList(sharedPref.getString(PREF_DAEMON_TESTNET, PREF_DAEMONLIST_TESTNET));
|
||||||
setNet(testnetCheckMenu, false);
|
setNet(testnetCheckMenu, false);
|
||||||
|
|
||||||
showXmrtoEnabled = sharedPref.getBoolean(PREF_SHOW_XMRTO_ENABLED, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveXmrToPrefs() {
|
|
||||||
SharedPreferences sharedPref = activityCallback.getPrefs();
|
|
||||||
SharedPreferences.Editor editor = sharedPref.edit();
|
|
||||||
editor.putBoolean(PREF_SHOW_XMRTO_ENABLED, showXmrtoEnabled);
|
|
||||||
editor.apply();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void savePrefs() {
|
void savePrefs() {
|
||||||
|
@ -428,7 +401,6 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
SharedPreferences.Editor editor = sharedPref.edit();
|
SharedPreferences.Editor editor = sharedPref.edit();
|
||||||
editor.putString(PREF_DAEMON_MAINNET, daemonMainNet.toString());
|
editor.putString(PREF_DAEMON_MAINNET, daemonMainNet.toString());
|
||||||
editor.putString(PREF_DAEMON_TESTNET, daemonTestNet.toString());
|
editor.putString(PREF_DAEMON_TESTNET, daemonTestNet.toString());
|
||||||
editor.putBoolean(PREF_SHOW_XMRTO_ENABLED, showXmrtoEnabled);
|
|
||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ import com.m2049r.xmrwallet.layout.SpendViewPager;
|
||||||
import com.m2049r.xmrwallet.model.PendingTransaction;
|
import com.m2049r.xmrwallet.model.PendingTransaction;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.NodeList;
|
import com.m2049r.xmrwallet.util.NodeList;
|
||||||
|
import com.m2049r.xmrwallet.util.Notice;
|
||||||
import com.m2049r.xmrwallet.util.UserNotes;
|
import com.m2049r.xmrwallet.util.UserNotes;
|
||||||
import com.m2049r.xmrwallet.widget.DotBar;
|
import com.m2049r.xmrwallet.widget.DotBar;
|
||||||
import com.m2049r.xmrwallet.widget.Toolbar;
|
import com.m2049r.xmrwallet.widget.Toolbar;
|
||||||
|
@ -119,27 +120,8 @@ public class SendFragment extends Fragment
|
||||||
arrowPrev = getResources().getDrawable(R.drawable.ic_navigate_prev_white_24dp);
|
arrowPrev = getResources().getDrawable(R.drawable.ic_navigate_prev_white_24dp);
|
||||||
arrowNext = getResources().getDrawable(R.drawable.ic_navigate_next_white_24dp);
|
arrowNext = getResources().getDrawable(R.drawable.ic_navigate_next_white_24dp);
|
||||||
|
|
||||||
llXmrToEnabled = view.findViewById(R.id.llXmrToEnabled);
|
ViewGroup llNotice = (ViewGroup) view.findViewById(R.id.llNotice);
|
||||||
llXmrToEnabled.setOnClickListener(new View.OnClickListener() {
|
Notice.showAll(llNotice,".*_send");
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
HelpFragment.display(getChildFragmentManager(), R.string.help_xmrto);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ibXmrToInfoClose = view.findViewById(R.id.ibXmrToInfoClose);
|
|
||||||
ibXmrToInfoClose.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
llXmrToEnabled.setVisibility(View.GONE);
|
|
||||||
showXmrtoEnabled = false;
|
|
||||||
saveXmrToPrefs();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
loadPrefs();
|
|
||||||
if (!showXmrtoEnabled) {
|
|
||||||
llXmrToEnabled.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
spendViewPager = (SpendViewPager) view.findViewById(R.id.pager);
|
spendViewPager = (SpendViewPager) view.findViewById(R.id.pager);
|
||||||
pagerAdapter = new SpendPagerAdapter(getChildFragmentManager());
|
pagerAdapter = new SpendPagerAdapter(getChildFragmentManager());
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2018 m2049r
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageButton;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.m2049r.xmrwallet.R;
|
||||||
|
import com.m2049r.xmrwallet.dialog.HelpFragment;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Notice {
|
||||||
|
private static final String PREFS_NAME = "notice";
|
||||||
|
private static List<Notice> notices = null;
|
||||||
|
|
||||||
|
private static final String NOTICE_SHOW_XMRTO_ENABLED_LOGIN = "notice_xmrto_enabled_login";
|
||||||
|
private static final String NOTICE_SHOW_XMRTO_ENABLED_SEND = "notice_xmrto_enabled_send";
|
||||||
|
private static final String NOTICE_SHOW_CRAZYPASS = "notice_crazypass_enabled_login";
|
||||||
|
|
||||||
|
private static void init() {
|
||||||
|
synchronized (Notice.class) {
|
||||||
|
if (notices != null) return;
|
||||||
|
notices = new ArrayList<>();
|
||||||
|
notices.add(
|
||||||
|
new Notice(NOTICE_SHOW_XMRTO_ENABLED_SEND,
|
||||||
|
R.string.info_xmrto_enabled,
|
||||||
|
R.string.help_xmrto,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
notices.add(
|
||||||
|
new Notice(NOTICE_SHOW_XMRTO_ENABLED_LOGIN,
|
||||||
|
R.string.info_xmrto_enabled,
|
||||||
|
R.string.help_xmrto,
|
||||||
|
1)
|
||||||
|
);
|
||||||
|
notices.add(
|
||||||
|
new Notice(NOTICE_SHOW_CRAZYPASS,
|
||||||
|
R.string.info_crazypass_enabled,
|
||||||
|
R.string.help_details,
|
||||||
|
2)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void showAll(ViewGroup parent, String selector) {
|
||||||
|
if (notices == null) init();
|
||||||
|
for (Notice notice : notices) {
|
||||||
|
if (notice.id.matches(selector))
|
||||||
|
notice.show(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final String id;
|
||||||
|
private final int textResId;
|
||||||
|
private final int helpResId;
|
||||||
|
private final int defaultCount;
|
||||||
|
private transient int count = -1;
|
||||||
|
|
||||||
|
private Notice(final String id, final int textResId, final int helpResId, final int defaultCount) {
|
||||||
|
this.id = id;
|
||||||
|
this.textResId = textResId;
|
||||||
|
this.helpResId = helpResId;
|
||||||
|
this.defaultCount = defaultCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
// show this notice as a child of the given parent view
|
||||||
|
// NB: it assumes the parent is in a Fragment
|
||||||
|
private void show(final ViewGroup parent) {
|
||||||
|
final Context context = parent.getContext();
|
||||||
|
if (getCount(context) <= 0) return; // don't add it
|
||||||
|
|
||||||
|
final LinearLayout ll =
|
||||||
|
(LinearLayout) LayoutInflater.from(context)
|
||||||
|
.inflate(R.layout.template_notice, parent, false);
|
||||||
|
|
||||||
|
((TextView) ll.findViewById(R.id.tvNotice)).setText(textResId);
|
||||||
|
|
||||||
|
final FragmentManager fragmentManager =
|
||||||
|
((FragmentActivity) context).getSupportFragmentManager();
|
||||||
|
ll.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
HelpFragment.display(fragmentManager, helpResId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ImageButton ib = (ImageButton) ll.findViewById(R.id.ibClose);
|
||||||
|
ib.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
ll.setVisibility(View.GONE);
|
||||||
|
decCount(context);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
parent.addView(ll);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getCount(final Context context) {
|
||||||
|
count = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
|
||||||
|
.getInt(id, defaultCount);
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void decCount(final Context context) {
|
||||||
|
final SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
|
||||||
|
if (count < 0) // not initialized yet
|
||||||
|
count = prefs.getInt(id, defaultCount);
|
||||||
|
if (count > 0)
|
||||||
|
prefs.edit().putInt(id, count - 1).apply();
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,34 +11,10 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/llXmrToEnabled"
|
android:id="@+id/llNotice"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/moneroBlue"
|
android:orientation="vertical" />
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/MoneroLabel.Heading"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:drawablePadding="8dp"
|
|
||||||
android:drawableStart="@drawable/ic_info_white_24dp"
|
|
||||||
android:gravity="start|center_vertical"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:text="@string/info_xmrto_enabled"
|
|
||||||
android:textColor="@color/white" />
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/ibXmrToInfoClose"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:backgroundTint="#00000000"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:src="@drawable/ic_close_white_24dp" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/etDummy"
|
android:id="@+id/etDummy"
|
||||||
|
|
|
@ -7,34 +7,10 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/llXmrToEnabled"
|
android:id="@+id/llNotice"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/moneroBlue"
|
android:orientation="vertical" />
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/MoneroLabel.Heading"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:drawablePadding="8dp"
|
|
||||||
android:drawableStart="@drawable/ic_info_white_24dp"
|
|
||||||
android:gravity="start|center_vertical"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:text="@string/info_xmrto_enabled"
|
|
||||||
android:textColor="@color/white" />
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/ibXmrToInfoClose"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:backgroundTint="#00000000"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:src="@drawable/ic_close_white_24dp" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/etDummy"
|
android:id="@+id/etDummy"
|
||||||
|
@ -46,7 +22,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_above="@+id/llNavBar"
|
android:layout_above="@+id/llNavBar"
|
||||||
android:layout_below="@id/llXmrToEnabled"
|
android:layout_below="@id/llNotice"
|
||||||
android:padding="8dp" />
|
android:padding="8dp" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/llNotice"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:background="@color/moneroBlue"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvNotice"
|
||||||
|
style="@style/MoneroLabel.Heading"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:drawablePadding="8dp"
|
||||||
|
android:drawableStart="@drawable/ic_info_white_24dp"
|
||||||
|
android:gravity="start|center_vertical"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
tools:text="This is an important notice!" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/ibClose"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:backgroundTint="#00000000"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:src="@drawable/ic_close_white_24dp" />
|
||||||
|
</LinearLayout>
|
|
@ -345,4 +345,5 @@
|
||||||
<string name="about_whoami">Soy monerujo</string>
|
<string name="about_whoami">Soy monerujo</string>
|
||||||
<string name="info_send_xmrto_success_order_label">Orden XMR.TO</string>
|
<string name="info_send_xmrto_success_order_label">Orden XMR.TO</string>
|
||||||
<string name="info_xmrto_enabled">Pago en BTC activado, toca para más info.</string>
|
<string name="info_xmrto_enabled">Pago en BTC activado, toca para más info.</string>
|
||||||
|
<string name="info_crazypass_enabled">CrAzYpass activado, toca para más info.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
<string name="info_send_prio_fees">Priorità più alta = Commissioni più alte</string>
|
<string name="info_send_prio_fees">Priorità più alta = Commissioni più alte</string>
|
||||||
|
|
||||||
<string name="info_xmrto_enabled">Pagamento BTC abilitato, tocca per maggiori informazioni.</string>
|
<string name="info_xmrto_enabled">Pagamento BTC abilitato, tocca per maggiori informazioni.</string>
|
||||||
|
<string name="info_crazypass_enabled">CrAzYpass abilitato, tocca per maggiori informazioni.</string>
|
||||||
|
|
||||||
<string name="info_xmrto"><![CDATA[
|
<string name="info_xmrto"><![CDATA[
|
||||||
<b>Hai inserito un indirizzo Bitcoin.</b><br/>
|
<b>Hai inserito un indirizzo Bitcoin.</b><br/>
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
<string name="info_send_prio_fees">Høyere prioritet = høyere avgifter</string>
|
<string name="info_send_prio_fees">Høyere prioritet = høyere avgifter</string>
|
||||||
|
|
||||||
<string name="info_xmrto_enabled">BTC betaling tilgjengelig, trykk for mer info.</string>
|
<string name="info_xmrto_enabled">BTC betaling tilgjengelig, trykk for mer info.</string>
|
||||||
|
<string name="info_crazypass_enabled">CrAzYpass tilgjengelig, trykk for mer info.</string>
|
||||||
|
|
||||||
<string name="info_xmrto"><![CDATA[
|
<string name="info_xmrto"><![CDATA[
|
||||||
<b>Du skrev inn en Bitcoin addresse.</b><br/>
|
<b>Du skrev inn en Bitcoin addresse.</b><br/>
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
<string name="info_send_prio_fees">較高優先權 = 較高手續費</string>
|
<string name="info_send_prio_fees">較高優先權 = 較高手續費</string>
|
||||||
|
|
||||||
<string name="info_xmrto_enabled">BTC付款已啟用, 點選我獲得更多資訊</string>
|
<string name="info_xmrto_enabled">BTC付款已啟用, 點選我獲得更多資訊</string>
|
||||||
|
<string name="info_crazypass_enabled">CrAzYpass已啟用, 點選我獲得更多資訊</string>
|
||||||
|
|
||||||
<string name="info_xmrto"><![CDATA[
|
<string name="info_xmrto"><![CDATA[
|
||||||
<b>你已輸入Bitcoin地址</b><br/>
|
<b>你已輸入Bitcoin地址</b><br/>
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
|
|
||||||
<string name="info_xmrto_enabled">BTC payment enabled, tap for more info.</string>
|
<string name="info_xmrto_enabled">BTC payment enabled, tap for more info.</string>
|
||||||
|
|
||||||
|
<string name="info_crazypass_enabled">CrAzYpass enabled, tap for more info.</string>
|
||||||
|
|
||||||
<string name="info_xmrto"><![CDATA[
|
<string name="info_xmrto"><![CDATA[
|
||||||
<b>You entered a Bitcoin address.</b><br/>
|
<b>You entered a Bitcoin address.</b><br/>
|
||||||
<i>You'll send XMR and the receiver will get BTC using the <b>XMR.TO</b> service.</i>
|
<i>You'll send XMR and the receiver will get BTC using the <b>XMR.TO</b> service.</i>
|
||||||
|
|
Loading…
Reference in New Issue