Restyle UI (#690)
* enable testnet flavor * v0.17.1.0 * migrate to androidx & material * new color themes * bump version v1.15.2
This commit is contained in:
parent
e5b15b7816
commit
1829d30b61
|
@ -7,9 +7,9 @@ android {
|
||||||
applicationId "com.m2049r.xmrwallet"
|
applicationId "com.m2049r.xmrwallet"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 408
|
versionCode 502
|
||||||
versionName "1.14.8 'On Board'"
|
versionName "1.15.2 'Dark Fork'"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
cppFlags "-std=c++11"
|
cppFlags "-std=c++11"
|
||||||
|
@ -17,6 +17,11 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bundle {
|
||||||
|
language {
|
||||||
|
enableSplit = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
flavorDimensions 'type', 'net'
|
flavorDimensions 'type', 'net'
|
||||||
productFlavors {
|
productFlavors {
|
||||||
|
@ -28,6 +33,11 @@ android {
|
||||||
applicationIdSuffix '.stage'
|
applicationIdSuffix '.stage'
|
||||||
versionNameSuffix ' (stage)'
|
versionNameSuffix ' (stage)'
|
||||||
}
|
}
|
||||||
|
devnet {
|
||||||
|
dimension 'net'
|
||||||
|
applicationIdSuffix '.test'
|
||||||
|
versionNameSuffix ' (test)'
|
||||||
|
}
|
||||||
alpha {
|
alpha {
|
||||||
dimension 'type'
|
dimension 'type'
|
||||||
applicationIdSuffix '.alpha'
|
applicationIdSuffix '.alpha'
|
||||||
|
@ -70,6 +80,7 @@ android {
|
||||||
def availableLocales = ["en"]
|
def availableLocales = ["en"]
|
||||||
new File("app/src/main/res/").eachFileMatch(~/^values-.*/) { file ->
|
new File("app/src/main/res/").eachFileMatch(~/^values-.*/) { file ->
|
||||||
def languageTag = file.name.substring(7).replace("-r", "-")
|
def languageTag = file.name.substring(7).replace("-r", "-")
|
||||||
|
if (languageTag != "night")
|
||||||
availableLocales.add(languageTag)
|
availableLocales.add(languageTag)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,30 +111,30 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "com.android.support:appcompat-v7:$rootProject.ext.supportVersion"
|
implementation 'androidx.core:core:1.3.2'
|
||||||
implementation "com.android.support:design:$rootProject.ext.supportVersion"
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||||
implementation "com.android.support:support-v4:$rootProject.ext.supportVersion"
|
implementation group: 'com.google.android.material', name: 'material', version: '1.3.0-alpha03'
|
||||||
implementation "com.android.support:recyclerview-v7:$rootProject.ext.supportVersion"
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
implementation "com.android.support:cardview-v7:$rootProject.ext.supportVersion"
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
||||||
implementation "com.android.support:swiperefreshlayout:$rootProject.ext.supportVersion"
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation "com.android.support.constraint:constraint-layout:$rootProject.ext.constraintVersion"
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01'
|
||||||
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
|
||||||
|
|
||||||
|
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
||||||
implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okHttpVersion"
|
implementation "com.squareup.okhttp3:okhttp:$rootProject.ext.okHttpVersion"
|
||||||
implementation "com.burgstaller:okhttp-digest:1.18"
|
implementation "com.burgstaller:okhttp-digest:2.0"
|
||||||
implementation "com.jakewharton.timber:timber:$rootProject.ext.timberVersion"
|
implementation "com.jakewharton.timber:timber:$rootProject.ext.timberVersion"
|
||||||
|
|
||||||
implementation 'com.nulab-inc:zxcvbn:1.2.3'
|
implementation 'com.nulab-inc:zxcvbn:1.3.0'
|
||||||
|
|
||||||
implementation 'dnsjava:dnsjava:2.1.8'
|
implementation 'dnsjava:dnsjava:2.1.9'
|
||||||
implementation 'org.jitsi:dnssecjava:1.1.3'
|
implementation 'org.jitsi:dnssecjava:1.2.0'
|
||||||
implementation 'org.slf4j:slf4j-nop:1.7.25'
|
implementation 'org.slf4j:slf4j-nop:1.7.30'
|
||||||
implementation 'com.github.brnunes:swipeablerecyclerview:1.0.2'
|
implementation 'com.github.brnunes:swipeablerecyclerview:1.0.2'
|
||||||
|
|
||||||
// https://mvnrepository.com/artifact/com.github.aelstad/keccakj
|
// https://mvnrepository.com/artifact/com.github.aelstad/keccakj
|
||||||
implementation 'com.github.aelstad:keccakj:1.1.0'
|
implementation 'com.github.aelstad:keccakj:1.1.0'
|
||||||
|
|
||||||
|
|
||||||
testImplementation "junit:junit:$rootProject.ext.junitVersion"
|
testImplementation "junit:junit:$rootProject.ext.junitVersion"
|
||||||
testImplementation "org.mockito:mockito-all:$rootProject.ext.mockitoVersion"
|
testImplementation "org.mockito:mockito-all:$rootProject.ext.mockitoVersion"
|
||||||
testImplementation "com.squareup.okhttp3:mockwebserver:$rootProject.ext.okHttpVersion"
|
testImplementation "com.squareup.okhttp3:mockwebserver:$rootProject.ext.okHttpVersion"
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/MyMaterialTheme"
|
android:theme="@style/MyMaterialTheme"
|
||||||
android:usesCleartextTraffic="true">
|
android:usesCleartextTraffic="true">
|
||||||
<activity android:name=".MainActivity"
|
<activity
|
||||||
android:configChanges="orientation|keyboardHidden"
|
android:name=".MainActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden|uiMode"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:screenOrientation="portrait">
|
android:screenOrientation="portrait">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@ -31,13 +32,13 @@
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".WalletActivity"
|
android:name=".WalletActivity"
|
||||||
android:configChanges="orientation|keyboardHidden"
|
android:configChanges="orientation|keyboardHidden|uiMode"
|
||||||
android:label="@string/wallet_activity_name"
|
android:label="@string/wallet_activity_name"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
android:screenOrientation="behind"/>
|
android:screenOrientation="behind"/>
|
||||||
<activity
|
<activity
|
||||||
android:name=".LoginActivity"
|
android:name=".LoginActivity"
|
||||||
android:configChanges="orientation|keyboardHidden"
|
android:configChanges="orientation|keyboardHidden|uiMode"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:screenOrientation="locked">
|
android:screenOrientation="locked">
|
||||||
|
@ -65,8 +66,9 @@
|
||||||
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
|
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
|
||||||
android:resource="@xml/usb_device_filter" />
|
android:resource="@xml/usb_device_filter" />
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".onboarding.OnBoardingActivity"
|
<activity
|
||||||
android:configChanges="orientation|keyboardHidden"
|
android:name=".onboarding.OnBoardingActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden|uiMode"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
android:screenOrientation="portrait" />
|
android:screenOrientation="portrait" />
|
||||||
|
|
||||||
|
@ -77,7 +79,7 @@
|
||||||
android:label="Monero Wallet Service" />
|
android:label="Monero Wallet Service" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="android.support.v4.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="${applicationId}.fileprovider"
|
android:authorities="${applicationId}.fileprovider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
|
|
|
@ -15,9 +15,9 @@ import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.support.annotation.CallSuper;
|
import androidx.annotation.CallSuper;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.support.v4.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.data.BarcodeData;
|
import com.m2049r.xmrwallet.data.BarcodeData;
|
||||||
|
|
|
@ -17,13 +17,9 @@
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
|
@ -38,9 +34,15 @@ import android.view.WindowManager;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.Switch;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.model.Wallet;
|
import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.model.WalletManager;
|
import com.m2049r.xmrwallet.model.WalletManager;
|
||||||
import com.m2049r.xmrwallet.util.FingerprintHelper;
|
import com.m2049r.xmrwallet.util.FingerprintHelper;
|
||||||
|
@ -202,13 +204,13 @@ public class GenerateFragment extends Fragment {
|
||||||
if (FingerprintHelper.isDeviceSupported(getContext())) {
|
if (FingerprintHelper.isDeviceSupported(getContext())) {
|
||||||
llFingerprintAuth.setVisibility(View.VISIBLE);
|
llFingerprintAuth.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
final Switch swFingerprintAllowed = (Switch) llFingerprintAuth.getChildAt(0);
|
final SwitchMaterial swFingerprintAllowed = (SwitchMaterial) llFingerprintAuth.getChildAt(0);
|
||||||
swFingerprintAllowed.setOnClickListener(new View.OnClickListener() {
|
swFingerprintAllowed.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (!swFingerprintAllowed.isChecked()) return;
|
if (!swFingerprintAllowed.isChecked()) return;
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity());
|
||||||
builder.setMessage(Html.fromHtml(getString(R.string.generate_fingerprint_warn)))
|
builder.setMessage(Html.fromHtml(getString(R.string.generate_fingerprint_warn)))
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.setPositiveButton(getString(R.string.label_ok), null)
|
.setPositiveButton(getString(R.string.label_ok), null)
|
||||||
|
@ -507,7 +509,7 @@ public class GenerateFragment extends Fragment {
|
||||||
|
|
||||||
String name = etWalletName.getEditText().getText().toString();
|
String name = etWalletName.getEditText().getText().toString();
|
||||||
String password = etWalletPassword.getEditText().getText().toString();
|
String password = etWalletPassword.getEditText().getText().toString();
|
||||||
boolean fingerprintAuthAllowed = ((Switch) llFingerprintAuth.getChildAt(0)).isChecked();
|
boolean fingerprintAuthAllowed = ((SwitchMaterial) llFingerprintAuth.getChildAt(0)).isChecked();
|
||||||
|
|
||||||
// create the real wallet password
|
// create the real wallet password
|
||||||
String crazyPass = KeyStoreHelper.getCrazyPass(getActivity(), password);
|
String crazyPass = KeyStoreHelper.getCrazyPass(getActivity(), password);
|
||||||
|
@ -646,7 +648,7 @@ public class GenerateFragment extends Fragment {
|
||||||
if (ledgerDialog != null) return;
|
if (ledgerDialog != null) return;
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
View promptsView = getLayoutInflater().inflate(R.layout.prompt_ledger_seed, null);
|
View promptsView = getLayoutInflater().inflate(R.layout.prompt_ledger_seed, null);
|
||||||
android.app.AlertDialog.Builder alertDialogBuilder = new android.app.AlertDialog.Builder(activity);
|
MaterialAlertDialogBuilder alertDialogBuilder = new MaterialAlertDialogBuilder(activity);
|
||||||
alertDialogBuilder.setView(promptsView);
|
alertDialogBuilder.setView(promptsView);
|
||||||
|
|
||||||
final TextInputLayout etSeed = promptsView.findViewById(R.id.etSeed);
|
final TextInputLayout etSeed = promptsView.findViewById(R.id.etSeed);
|
||||||
|
|
|
@ -16,14 +16,10 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -40,10 +36,17 @@ import android.widget.ImageButton;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.Switch;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.ledger.Ledger;
|
import com.m2049r.xmrwallet.ledger.Ledger;
|
||||||
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
|
import com.m2049r.xmrwallet.ledger.LedgerProgressDialog;
|
||||||
import com.m2049r.xmrwallet.model.NetworkType;
|
import com.m2049r.xmrwallet.model.NetworkType;
|
||||||
|
@ -118,31 +121,11 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
tvWalletSpendKey.setTextIsSelectable(allowCopy);
|
tvWalletSpendKey.setTextIsSelectable(allowCopy);
|
||||||
tvWalletPassword.setTextIsSelectable(allowCopy);
|
tvWalletPassword.setTextIsSelectable(allowCopy);
|
||||||
|
|
||||||
bAccept.setOnClickListener(new View.OnClickListener() {
|
bAccept.setOnClickListener(v -> acceptWallet());
|
||||||
@Override
|
view.findViewById(R.id.bCopyViewKey).setOnClickListener(v -> copyViewKey());
|
||||||
public void onClick(View v) {
|
bCopyAddress.setEnabled(false);
|
||||||
acceptWallet();
|
bCopyAddress.setOnClickListener(v -> copyAddress());
|
||||||
}
|
view.findViewById(R.id.bAdvancedInfo).setOnClickListener(v -> showAdvancedInfo());
|
||||||
});
|
|
||||||
view.findViewById(R.id.bCopyViewKey).setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
copyViewKey();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bCopyAddress.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
copyAddress();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bCopyAddress.setClickable(false);
|
|
||||||
view.findViewById(R.id.bAdvancedInfo).setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
showAdvancedInfo();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Bundle args = getArguments();
|
Bundle args = getArguments();
|
||||||
type = args.getString(REQUEST_TYPE);
|
type = args.getString(REQUEST_TYPE);
|
||||||
|
@ -287,8 +270,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
showAdvanced = true;
|
showAdvanced = true;
|
||||||
}
|
}
|
||||||
if (showAdvanced) bAdvancedInfo.setVisibility(View.VISIBLE);
|
if (showAdvanced) bAdvancedInfo.setVisibility(View.VISIBLE);
|
||||||
bCopyAddress.setClickable(true);
|
bCopyAddress.setEnabled(true);
|
||||||
bCopyAddress.setImageResource(R.drawable.ic_content_copy_black_24dp);
|
|
||||||
activityCallback.setTitle(name, getString(R.string.details_title));
|
activityCallback.setTitle(name, getString(R.string.details_title));
|
||||||
activityCallback.setToolbarButton(
|
activityCallback.setToolbarButton(
|
||||||
GenerateReviewFragment.VIEW_TYPE_ACCEPT.equals(type) ? Toolbar.BUTTON_NONE : Toolbar.BUTTON_BACK);
|
GenerateReviewFragment.VIEW_TYPE_ACCEPT.equals(type) ? Toolbar.BUTTON_NONE : Toolbar.BUTTON_BACK);
|
||||||
|
@ -352,7 +334,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onAttach(@NonNull Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
if (context instanceof Listener) {
|
if (context instanceof Listener) {
|
||||||
this.activityCallback = (Listener) context;
|
this.activityCallback = (Listener) context;
|
||||||
|
@ -399,7 +381,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||||
String type = getArguments().getString(REQUEST_TYPE); // intance variable <type> not set yet
|
String type = getArguments().getString(REQUEST_TYPE); // intance variable <type> not set yet
|
||||||
if (GenerateReviewFragment.VIEW_TYPE_ACCEPT.equals(type)) {
|
if (GenerateReviewFragment.VIEW_TYPE_ACCEPT.equals(type)) {
|
||||||
inflater.inflate(R.menu.wallet_details_help_menu, menu);
|
inflater.inflate(R.menu.wallet_details_help_menu, menu);
|
||||||
|
@ -448,7 +430,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
protected Boolean doInBackground(String... params) {
|
protected Boolean doInBackground(String... params) {
|
||||||
if (params.length != 2) return false;
|
if (params.length != 2) return false;
|
||||||
final String userPassword = params[0];
|
final String userPassword = params[0];
|
||||||
final boolean fingerPassValid = Boolean.valueOf(params[1]);
|
final boolean fingerPassValid = Boolean.parseBoolean(params[1]);
|
||||||
newPassword = KeyStoreHelper.getCrazyPass(getActivity(), userPassword);
|
newPassword = KeyStoreHelper.getCrazyPass(getActivity(), userPassword);
|
||||||
final boolean success = changeWalletPassword(newPassword);
|
final boolean success = changeWalletPassword(newPassword);
|
||||||
if (success) {
|
if (success) {
|
||||||
|
@ -488,7 +470,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
LayoutInflater li = LayoutInflater.from(getActivity());
|
LayoutInflater li = LayoutInflater.from(getActivity());
|
||||||
View promptsView = li.inflate(R.layout.prompt_changepw, null);
|
View promptsView = li.inflate(R.layout.prompt_changepw, null);
|
||||||
|
|
||||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(getActivity());
|
||||||
alertDialogBuilder.setView(promptsView);
|
alertDialogBuilder.setView(promptsView);
|
||||||
|
|
||||||
final TextInputLayout etPasswordA = promptsView.findViewById(R.id.etWalletPasswordA);
|
final TextInputLayout etPasswordA = promptsView.findViewById(R.id.etWalletPasswordA);
|
||||||
|
@ -498,7 +480,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
etPasswordB.setHint(getString(R.string.prompt_changepwB, walletName));
|
etPasswordB.setHint(getString(R.string.prompt_changepwB, walletName));
|
||||||
|
|
||||||
LinearLayout llFingerprintAuth = promptsView.findViewById(R.id.llFingerprintAuth);
|
LinearLayout llFingerprintAuth = promptsView.findViewById(R.id.llFingerprintAuth);
|
||||||
final Switch swFingerprintAllowed = (Switch) llFingerprintAuth.getChildAt(0);
|
final SwitchMaterial swFingerprintAllowed = (SwitchMaterial) llFingerprintAuth.getChildAt(0);
|
||||||
if (FingerprintHelper.isDeviceSupported(getActivity())) {
|
if (FingerprintHelper.isDeviceSupported(getActivity())) {
|
||||||
llFingerprintAuth.setVisibility(View.VISIBLE);
|
llFingerprintAuth.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
@ -507,7 +489,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (!swFingerprintAllowed.isChecked()) return;
|
if (!swFingerprintAllowed.isChecked()) return;
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getActivity());
|
||||||
builder.setMessage(Html.fromHtml(getString(R.string.generate_fingerprint_warn)))
|
builder.setMessage(Html.fromHtml(getString(R.string.generate_fingerprint_warn)))
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.setPositiveButton(getString(R.string.label_ok), null)
|
.setPositiveButton(getString(R.string.label_ok), null)
|
||||||
|
@ -596,7 +578,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
etPasswordA.setError(getString(R.string.generate_empty_passwordB));
|
etPasswordA.setError(getString(R.string.generate_empty_passwordB));
|
||||||
} else if (!newPasswordA.equals(newPasswordB)) {
|
} else if (!newPasswordA.equals(newPasswordB)) {
|
||||||
etPasswordB.setError(getString(R.string.generate_bad_passwordB));
|
etPasswordB.setError(getString(R.string.generate_bad_passwordB));
|
||||||
} else if (newPasswordA.equals(newPasswordB)) {
|
} else {
|
||||||
new AsyncChangePassword().execute(newPasswordA, Boolean.toString(swFingerprintAllowed.isChecked()));
|
new AsyncChangePassword().execute(newPasswordA, Boolean.toString(swFingerprintAllowed.isChecked()));
|
||||||
Helper.hideKeyboardAlways(getActivity());
|
Helper.hideKeyboardAlways(getActivity());
|
||||||
openDialog.dismiss();
|
openDialog.dismiss();
|
||||||
|
@ -619,7 +601,7 @@ public class GenerateReviewFragment extends Fragment {
|
||||||
etPasswordA.setError(getString(R.string.generate_empty_passwordB));
|
etPasswordA.setError(getString(R.string.generate_empty_passwordB));
|
||||||
} else if (!newPasswordA.equals(newPasswordB)) {
|
} else if (!newPasswordA.equals(newPasswordB)) {
|
||||||
etPasswordB.setError(getString(R.string.generate_bad_passwordB));
|
etPasswordB.setError(getString(R.string.generate_bad_passwordB));
|
||||||
} else if (newPasswordA.equals(newPasswordB)) {
|
} else {
|
||||||
new AsyncChangePassword().execute(newPasswordA, Boolean.toString(swFingerprintAllowed.isChecked()));
|
new AsyncChangePassword().execute(newPasswordA, Boolean.toString(swFingerprintAllowed.isChecked()));
|
||||||
Helper.hideKeyboardAlways(getActivity());
|
Helper.hideKeyboardAlways(getActivity());
|
||||||
openDialog.dismiss();
|
openDialog.dismiss();
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -30,10 +29,6 @@ import android.hardware.usb.UsbManager;
|
||||||
import android.media.MediaScannerConnection;
|
import android.media.MediaScannerConnection;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
@ -43,6 +38,14 @@ import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.data.Node;
|
import com.m2049r.xmrwallet.data.Node;
|
||||||
import com.m2049r.xmrwallet.data.NodeInfo;
|
import com.m2049r.xmrwallet.data.NodeInfo;
|
||||||
import com.m2049r.xmrwallet.dialog.AboutFragment;
|
import com.m2049r.xmrwallet.dialog.AboutFragment;
|
||||||
|
@ -55,10 +58,13 @@ import com.m2049r.xmrwallet.model.NetworkType;
|
||||||
import com.m2049r.xmrwallet.model.Wallet;
|
import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.model.WalletManager;
|
import com.m2049r.xmrwallet.model.WalletManager;
|
||||||
import com.m2049r.xmrwallet.service.WalletService;
|
import com.m2049r.xmrwallet.service.WalletService;
|
||||||
|
import com.m2049r.xmrwallet.util.ColorHelper;
|
||||||
|
import com.m2049r.xmrwallet.util.DayNightMode;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.KeyStoreHelper;
|
import com.m2049r.xmrwallet.util.KeyStoreHelper;
|
||||||
import com.m2049r.xmrwallet.util.LocaleHelper;
|
import com.m2049r.xmrwallet.util.LocaleHelper;
|
||||||
import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor;
|
import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor;
|
||||||
|
import com.m2049r.xmrwallet.util.NightmodeHelper;
|
||||||
import com.m2049r.xmrwallet.widget.Toolbar;
|
import com.m2049r.xmrwallet.widget.Toolbar;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -69,7 +75,6 @@ import java.nio.channels.FileChannel;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -85,6 +90,7 @@ public class LoginActivity extends BaseActivity
|
||||||
private static final String GENERATE_STACK = "gen";
|
private static final String GENERATE_STACK = "gen";
|
||||||
|
|
||||||
private static final String NODES_PREFS_NAME = "nodes";
|
private static final String NODES_PREFS_NAME = "nodes";
|
||||||
|
private static final String PREF_DAEMON_TESTNET = "daemon_testnet";
|
||||||
private static final String PREF_DAEMON_STAGENET = "daemon_stagenet";
|
private static final String PREF_DAEMON_STAGENET = "daemon_stagenet";
|
||||||
private static final String PREF_DAEMON_MAINNET = "daemon_mainnet";
|
private static final String PREF_DAEMON_MAINNET = "daemon_mainnet";
|
||||||
|
|
||||||
|
@ -163,6 +169,10 @@ public class LoginActivity extends BaseActivity
|
||||||
loadLegacyList(sharedPref.getString(PREF_DAEMON_STAGENET, null));
|
loadLegacyList(sharedPref.getString(PREF_DAEMON_STAGENET, null));
|
||||||
sharedPref.edit().remove(PREF_DAEMON_STAGENET).apply();
|
sharedPref.edit().remove(PREF_DAEMON_STAGENET).apply();
|
||||||
break;
|
break;
|
||||||
|
case NetworkType_Testnet:
|
||||||
|
loadLegacyList(sharedPref.getString(PREF_DAEMON_TESTNET, null));
|
||||||
|
sharedPref.edit().remove(PREF_DAEMON_TESTNET).apply();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalStateException("unsupported net " + WalletManager.getInstance().getNetworkType());
|
throw new IllegalStateException("unsupported net " + WalletManager.getInstance().getNetworkType());
|
||||||
}
|
}
|
||||||
|
@ -337,8 +347,8 @@ public class LoginActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||||
AlertDialog diag = builder.setMessage(getString(R.string.details_alert_message))
|
builder.setMessage(getString(R.string.details_alert_message))
|
||||||
.setPositiveButton(getString(R.string.details_alert_yes), dialogClickListener)
|
.setPositiveButton(getString(R.string.details_alert_yes), dialogClickListener)
|
||||||
.setNegativeButton(getString(R.string.details_alert_no), dialogClickListener)
|
.setNegativeButton(getString(R.string.details_alert_no), dialogClickListener)
|
||||||
.show();
|
.show();
|
||||||
|
@ -426,7 +436,7 @@ public class LoginActivity extends BaseActivity
|
||||||
LayoutInflater li = LayoutInflater.from(this);
|
LayoutInflater li = LayoutInflater.from(this);
|
||||||
View promptsView = li.inflate(R.layout.prompt_rename, null);
|
View promptsView = li.inflate(R.layout.prompt_rename, null);
|
||||||
|
|
||||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
|
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(this);
|
||||||
alertDialogBuilder.setView(promptsView);
|
alertDialogBuilder.setView(promptsView);
|
||||||
|
|
||||||
final EditText etRename = promptsView.findViewById(R.id.etRename);
|
final EditText etRename = promptsView.findViewById(R.id.etRename);
|
||||||
|
@ -581,7 +591,7 @@ public class LoginActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||||
builder.setMessage(getString(R.string.archive_alert_message))
|
builder.setMessage(getString(R.string.archive_alert_message))
|
||||||
.setTitle(walletName)
|
.setTitle(walletName)
|
||||||
.setPositiveButton(getString(R.string.archive_alert_yes), dialogClickListener)
|
.setPositiveButton(getString(R.string.archive_alert_yes), dialogClickListener)
|
||||||
|
@ -653,11 +663,11 @@ public class LoginActivity extends BaseActivity
|
||||||
break;
|
break;
|
||||||
case NetworkType_Testnet:
|
case NetworkType_Testnet:
|
||||||
toolbar.setSubtitle(getString(R.string.connect_testnet));
|
toolbar.setSubtitle(getString(R.string.connect_testnet));
|
||||||
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
|
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
|
||||||
break;
|
break;
|
||||||
case NetworkType_Stagenet:
|
case NetworkType_Stagenet:
|
||||||
toolbar.setSubtitle(getString(R.string.connect_stagenet));
|
toolbar.setSubtitle(getString(R.string.connect_stagenet));
|
||||||
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
|
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalStateException("NetworkType unknown: " + net);
|
throw new IllegalStateException("NetworkType unknown: " + net);
|
||||||
|
@ -1124,41 +1134,54 @@ public class LoginActivity extends BaseActivity
|
||||||
|
|
||||||
public void onChangeLocale() {
|
public void onChangeLocale() {
|
||||||
final ArrayList<Locale> availableLocales = LocaleHelper.getAvailableLocales(LoginActivity.this);
|
final ArrayList<Locale> availableLocales = LocaleHelper.getAvailableLocales(LoginActivity.this);
|
||||||
String[] localeDisplayName = new String[1 + availableLocales.size()];
|
Collections.sort(availableLocales, (locale1, locale2) -> {
|
||||||
|
|
||||||
Collections.sort(availableLocales, new Comparator<Locale>() {
|
|
||||||
@Override
|
|
||||||
public int compare(Locale locale1, Locale locale2) {
|
|
||||||
String localeString1 = LocaleHelper.getDisplayName(locale1, true);
|
String localeString1 = LocaleHelper.getDisplayName(locale1, true);
|
||||||
String localeString2 = LocaleHelper.getDisplayName(locale2, true);
|
String localeString2 = LocaleHelper.getDisplayName(locale2, true);
|
||||||
return localeString1.compareTo(localeString2);
|
return localeString1.compareTo(localeString2);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
localeDisplayName[0] = getString(R.string.language_system_default);
|
String[] localeDisplayNames = new String[1 + availableLocales.size()];
|
||||||
for (int i = 1; i < localeDisplayName.length; i++) {
|
localeDisplayNames[0] = getString(R.string.language_system_default);
|
||||||
Locale locale = availableLocales.get(i - 1);
|
for (int i = 1; i < localeDisplayNames.length; i++) {
|
||||||
localeDisplayName[i] = LocaleHelper.getDisplayName(locale, true);
|
localeDisplayNames[i] = LocaleHelper.getDisplayName(availableLocales.get(i - 1), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int currentLocaleIndex = 0;
|
int currentLocaleIndex = 0;
|
||||||
String currentLocaleName = LocaleHelper.getLocale(LoginActivity.this);
|
String currentLocaleTag = LocaleHelper.getPreferredLanguageTag(LoginActivity.this);
|
||||||
if (!currentLocaleName.isEmpty()) {
|
if (!currentLocaleTag.isEmpty()) {
|
||||||
Locale currentLocale = Locale.forLanguageTag(currentLocaleName);
|
Locale currentLocale = Locale.forLanguageTag(currentLocaleTag);
|
||||||
String currentLocalizedString = LocaleHelper.getDisplayName(currentLocale, true);
|
String currentLocaleName = LocaleHelper.getDisplayName(currentLocale, true);
|
||||||
currentLocaleIndex = Arrays.asList(localeDisplayName).indexOf(currentLocalizedString);
|
currentLocaleIndex = Arrays.asList(localeDisplayNames).indexOf(currentLocaleName);
|
||||||
|
if (currentLocaleIndex < 0) currentLocaleIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(LoginActivity.this);
|
||||||
builder.setTitle(getString(R.string.menu_language));
|
builder.setTitle(getString(R.string.menu_language));
|
||||||
builder.setSingleChoiceItems(localeDisplayName, currentLocaleIndex, new DialogInterface.OnClickListener() {
|
builder.setSingleChoiceItems(localeDisplayNames, currentLocaleIndex, (dialog, i) -> {
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int i) {
|
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
|
|
||||||
LocaleHelper.setLocale(LoginActivity.this,
|
LocaleHelper.setAndSaveLocale(this,
|
||||||
(i == 0) ? "" : availableLocales.get(i - 1).toLanguageTag());
|
(i == 0) ? "" : availableLocales.get(i - 1).toLanguageTag());
|
||||||
startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
|
startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||||
|
});
|
||||||
|
builder.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onChangeTheme() {
|
||||||
|
final DayNightMode currentDayNightSetting = DayNightMode.getValue(AppCompatDelegate.getDefaultNightMode());
|
||||||
|
// selection will be empty if UNKNOWN
|
||||||
|
|
||||||
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(LoginActivity.this);
|
||||||
|
builder.setTitle(getString(R.string.menu_daynight));
|
||||||
|
|
||||||
|
String[] modeNames = getResources().getStringArray(R.array.daynight_themes);
|
||||||
|
|
||||||
|
builder.setSingleChoiceItems(modeNames, currentDayNightSetting.ordinal(), (dialog, i) -> {
|
||||||
|
dialog.dismiss();
|
||||||
|
final DayNightMode mode = DayNightMode.values()[i];
|
||||||
|
if (currentDayNightSetting != mode) {
|
||||||
|
NightmodeHelper.setAndSavePreferredNightmode(LoginActivity.this, mode);
|
||||||
|
LoginActivity.this.recreate();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
builder.show();
|
builder.show();
|
||||||
|
@ -1227,6 +1250,9 @@ public class LoginActivity extends BaseActivity
|
||||||
case R.id.action_language:
|
case R.id.action_language:
|
||||||
onChangeLocale();
|
onChangeLocale();
|
||||||
return true;
|
return true;
|
||||||
|
case R.id.action_theme:
|
||||||
|
onChangeTheme();
|
||||||
|
return true;
|
||||||
case R.id.action_ledger_seed:
|
case R.id.action_ledger_seed:
|
||||||
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||||
if (f instanceof GenerateFragment) {
|
if (f instanceof GenerateFragment) {
|
||||||
|
|
|
@ -19,11 +19,6 @@ package com.m2049r.xmrwallet;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.design.widget.FloatingActionButton;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v7.widget.RecyclerView;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
|
@ -38,6 +33,12 @@ import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
import com.m2049r.xmrwallet.data.NodeInfo;
|
import com.m2049r.xmrwallet.data.NodeInfo;
|
||||||
import com.m2049r.xmrwallet.layout.NodeInfoAdapter;
|
import com.m2049r.xmrwallet.layout.NodeInfoAdapter;
|
||||||
import com.m2049r.xmrwallet.layout.WalletInfoAdapter;
|
import com.m2049r.xmrwallet.layout.WalletInfoAdapter;
|
||||||
|
@ -63,6 +64,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
private List<WalletManager.WalletInfo> walletList = new ArrayList<>();
|
private List<WalletManager.WalletInfo> walletList = new ArrayList<>();
|
||||||
private List<WalletManager.WalletInfo> displayedList = new ArrayList<>();
|
private List<WalletManager.WalletInfo> displayedList = new ArrayList<>();
|
||||||
|
|
||||||
|
private View tvGuntherSays;
|
||||||
private ImageView ivGunther;
|
private ImageView ivGunther;
|
||||||
private TextView tvNodeName;
|
private TextView tvNodeName;
|
||||||
private TextView tvNodeAddress;
|
private TextView tvNodeAddress;
|
||||||
|
@ -143,6 +145,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
Timber.d("onCreateView");
|
Timber.d("onCreateView");
|
||||||
View view = inflater.inflate(R.layout.fragment_login, container, false);
|
View view = inflater.inflate(R.layout.fragment_login, container, false);
|
||||||
|
|
||||||
|
tvGuntherSays = view.findViewById(R.id.tvGuntherSays);
|
||||||
ivGunther = view.findViewById(R.id.ivGunther);
|
ivGunther = view.findViewById(R.id.ivGunther);
|
||||||
fabScreen = view.findViewById(R.id.fabScreen);
|
fabScreen = view.findViewById(R.id.fabScreen);
|
||||||
fab = view.findViewById(R.id.fab);
|
fab = view.findViewById(R.id.fab);
|
||||||
|
@ -275,13 +278,15 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter
|
||||||
if (displayedList.isEmpty()) {
|
if (displayedList.isEmpty()) {
|
||||||
fab.startAnimation(fab_pulse);
|
fab.startAnimation(fab_pulse);
|
||||||
if (ivGunther.getDrawable() == null) {
|
if (ivGunther.getDrawable() == null) {
|
||||||
ivGunther.setImageResource(R.drawable.gunther_desaturated);
|
ivGunther.setImageResource(R.drawable.ic_emptygunther);
|
||||||
|
tvGuntherSays.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fab.clearAnimation();
|
fab.clearAnimation();
|
||||||
if (ivGunther.getDrawable() != null) {
|
if (ivGunther.getDrawable() != null) {
|
||||||
ivGunther.setImageDrawable(null);
|
ivGunther.setImageDrawable(null);
|
||||||
}
|
}
|
||||||
|
tvGuntherSays.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove information of non-existent wallet
|
// remove information of non-existent wallet
|
||||||
|
|
|
@ -18,13 +18,14 @@ package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.onboarding.OnBoardingActivity;
|
import com.m2049r.xmrwallet.onboarding.OnBoardingActivity;
|
||||||
import com.m2049r.xmrwallet.onboarding.OnBoardingManager;
|
import com.m2049r.xmrwallet.onboarding.OnBoardingManager;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends BaseActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable final Bundle savedInstanceState) {
|
protected void onCreate(@Nullable final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
|
@ -16,16 +16,19 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.support.v4.app.Fragment;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import android.support.v4.widget.SwipeRefreshLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import android.support.v7.widget.RecyclerView;
|
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
@ -445,7 +448,7 @@ public class NodeFragment extends Fragment
|
||||||
}
|
}
|
||||||
|
|
||||||
EditDialog(final NodeInfo nodeInfo) {
|
EditDialog(final NodeInfo nodeInfo) {
|
||||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(getActivity());
|
||||||
LayoutInflater li = LayoutInflater.from(alertDialogBuilder.getContext());
|
LayoutInflater li = LayoutInflater.from(alertDialogBuilder.getContext());
|
||||||
View promptsView = li.inflate(R.layout.prompt_editnode, null);
|
View promptsView = li.inflate(R.layout.prompt_editnode, null);
|
||||||
alertDialogBuilder.setView(promptsView);
|
alertDialogBuilder.setView(promptsView);
|
||||||
|
|
|
@ -25,12 +25,6 @@ import android.net.Uri;
|
||||||
import android.nfc.NfcManager;
|
import android.nfc.NfcManager;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.content.FileProvider;
|
|
||||||
import android.support.v4.view.MenuItemCompat;
|
|
||||||
import android.support.v7.widget.ShareActionProvider;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
@ -42,7 +36,6 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
@ -50,6 +43,13 @@ import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.widget.ShareActionProvider;
|
||||||
|
import androidx.core.content.FileProvider;
|
||||||
|
import androidx.core.view.MenuItemCompat;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.BarcodeFormat;
|
||||||
import com.google.zxing.EncodeHintType;
|
import com.google.zxing.EncodeHintType;
|
||||||
import com.google.zxing.WriterException;
|
import com.google.zxing.WriterException;
|
||||||
|
@ -82,10 +82,11 @@ public class ReceiveFragment extends Fragment {
|
||||||
private ExchangeView evAmount;
|
private ExchangeView evAmount;
|
||||||
private TextView tvQrCode;
|
private TextView tvQrCode;
|
||||||
private ImageView ivQrCode;
|
private ImageView ivQrCode;
|
||||||
|
private View cvQrCode;
|
||||||
private ImageView ivQrCodeFull;
|
private ImageView ivQrCodeFull;
|
||||||
private EditText etDummy;
|
private EditText etDummy;
|
||||||
private ImageButton bCopyAddress;
|
private ImageButton bCopyAddress;
|
||||||
private Button bSubaddress;
|
private ImageButton bSubaddress;
|
||||||
|
|
||||||
private Wallet wallet = null;
|
private Wallet wallet = null;
|
||||||
private boolean isMyWallet = false;
|
private boolean isMyWallet = false;
|
||||||
|
@ -109,6 +110,7 @@ public class ReceiveFragment extends Fragment {
|
||||||
tvAddress = view.findViewById(R.id.tvAddress);
|
tvAddress = view.findViewById(R.id.tvAddress);
|
||||||
etNotes = view.findViewById(R.id.etNotes);
|
etNotes = view.findViewById(R.id.etNotes);
|
||||||
evAmount = view.findViewById(R.id.evAmount);
|
evAmount = view.findViewById(R.id.evAmount);
|
||||||
|
cvQrCode = view.findViewById(R.id.cvQrCode);
|
||||||
ivQrCode = view.findViewById(R.id.qrCode);
|
ivQrCode = view.findViewById(R.id.qrCode);
|
||||||
tvQrCode = view.findViewById(R.id.tvQrCode);
|
tvQrCode = view.findViewById(R.id.tvQrCode);
|
||||||
ivQrCodeFull = view.findViewById(R.id.qrCodeFull);
|
ivQrCodeFull = view.findViewById(R.id.qrCodeFull);
|
||||||
|
@ -118,13 +120,9 @@ public class ReceiveFragment extends Fragment {
|
||||||
|
|
||||||
etDummy.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
etDummy.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
||||||
|
|
||||||
bCopyAddress.setOnClickListener(new View.OnClickListener() {
|
bCopyAddress.setOnClickListener(v -> copyAddress());
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
copyAddress();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
enableCopyAddress(false);
|
enableCopyAddress(false);
|
||||||
|
enableSubaddressButton(false);
|
||||||
|
|
||||||
evAmount.setOnNewAmountListener(new ExchangeView.OnNewAmountListener() {
|
evAmount.setOnNewAmountListener(new ExchangeView.OnNewAmountListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -190,7 +188,7 @@ public class ReceiveFragment extends Fragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ivQrCode.setOnClickListener(new View.OnClickListener() {
|
cvQrCode.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Helper.hideKeyboard(getActivity());
|
Helper.hideKeyboard(getActivity());
|
||||||
|
@ -315,13 +313,8 @@ public class ReceiveFragment extends Fragment {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void enableSubaddressButton(boolean enable) {
|
private void enableSubaddressButton(boolean enable) {
|
||||||
bSubaddress.setEnabled(enable);
|
bSubaddress.setEnabled(enable);
|
||||||
if (enable) {
|
|
||||||
bSubaddress.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_settings_orange_24dp, 0, 0);
|
|
||||||
} else {
|
|
||||||
bSubaddress.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_settings_gray_24dp, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyAddress() {
|
void copyAddress() {
|
||||||
|
@ -371,16 +364,13 @@ public class ReceiveFragment extends Fragment {
|
||||||
listenerCallback.setSubtitle(wallet.getAccountLabel());
|
listenerCallback.setSubtitle(wallet.getAccountLabel());
|
||||||
tvAddress.setText(wallet.getAddress());
|
tvAddress.setText(wallet.getAddress());
|
||||||
enableCopyAddress(true);
|
enableCopyAddress(true);
|
||||||
|
enableSubaddressButton(true);
|
||||||
hideProgress();
|
hideProgress();
|
||||||
generateQr();
|
generateQr();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableCopyAddress(boolean enable) {
|
private void enableCopyAddress(boolean enable) {
|
||||||
bCopyAddress.setClickable(enable);
|
bCopyAddress.setEnabled(enable);
|
||||||
if (enable)
|
|
||||||
bCopyAddress.setImageResource(R.drawable.ic_content_copy_black_24dp);
|
|
||||||
else
|
|
||||||
bCopyAddress.setImageResource(R.drawable.ic_content_nocopy_black_24dp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadAndShow(String walletPath, String password) {
|
private void loadAndShow(String walletPath, String password) {
|
||||||
|
|
|
@ -19,7 +19,7 @@ package com.m2049r.xmrwallet;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.v4.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
|
@ -17,13 +17,18 @@
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.LocaleHelper;
|
import com.m2049r.xmrwallet.util.LocaleHelper;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import static android.view.WindowManager.LayoutParams;
|
import static android.view.WindowManager.LayoutParams;
|
||||||
|
|
||||||
public abstract class SecureActivity extends AppCompatActivity {
|
public abstract class SecureActivity extends AppCompatActivity {
|
||||||
|
@ -37,7 +42,36 @@ public abstract class SecureActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void attachBaseContext(Context context) {
|
protected void attachBaseContext(Context newBase) {
|
||||||
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
|
super.attachBaseContext(newBase);
|
||||||
|
applyOverrideConfiguration(new Configuration());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyOverrideConfiguration(Configuration newConfig) {
|
||||||
|
super.applyOverrideConfiguration(updateConfigurationIfSupported(newConfig));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Configuration updateConfigurationIfSupported(Configuration config) {
|
||||||
|
// Configuration.getLocales is added after 24 and Configuration.locale is deprecated in 24
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
if (!config.getLocales().isEmpty()) {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (config.locale != null) {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Locale locale = LocaleHelper.getPreferredLocale(this);
|
||||||
|
if (locale != null) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||||
|
config.setLocale(locale);
|
||||||
|
} else {
|
||||||
|
config.locale = locale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return config;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,24 +19,24 @@ package com.m2049r.xmrwallet;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.content.ContextCompat;
|
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
import com.m2049r.xmrwallet.model.TransactionInfo;
|
import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||||
import com.m2049r.xmrwallet.model.Transfer;
|
import com.m2049r.xmrwallet.model.Transfer;
|
||||||
import com.m2049r.xmrwallet.model.Wallet;
|
import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
|
||||||
import com.m2049r.xmrwallet.widget.Toolbar;
|
import com.m2049r.xmrwallet.widget.Toolbar;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
@ -242,9 +242,9 @@ public class TxFragment extends Fragment {
|
||||||
} else if (info.isPending) {
|
} else if (info.isPending) {
|
||||||
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_pending));
|
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_pending));
|
||||||
} else if (info.direction == TransactionInfo.Direction.Direction_In) {
|
} else if (info.direction == TransactionInfo.Direction.Direction_In) {
|
||||||
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_green));
|
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_plus));
|
||||||
} else {
|
} else {
|
||||||
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_red));
|
setTxColour(ContextCompat.getColor(getContext(), R.color.tx_minus));
|
||||||
}
|
}
|
||||||
Set<String> destinations = new HashSet<>();
|
Set<String> destinations = new HashSet<>();
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -27,14 +26,6 @@ import android.content.pm.PackageManager;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.design.widget.NavigationView;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.support.v4.view.GravityCompat;
|
|
||||||
import android.support.v4.widget.DrawerLayout;
|
|
||||||
import android.support.v7.app.ActionBarDrawerToggle;
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
@ -45,6 +36,17 @@ import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.core.view.GravityCompat;
|
||||||
|
import androidx.drawerlayout.widget.DrawerLayout;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.navigation.NavigationView;
|
||||||
import com.m2049r.xmrwallet.data.BarcodeData;
|
import com.m2049r.xmrwallet.data.BarcodeData;
|
||||||
import com.m2049r.xmrwallet.data.TxData;
|
import com.m2049r.xmrwallet.data.TxData;
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
|
@ -58,6 +60,7 @@ import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||||
import com.m2049r.xmrwallet.model.Wallet;
|
import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.model.WalletManager;
|
import com.m2049r.xmrwallet.model.WalletManager;
|
||||||
import com.m2049r.xmrwallet.service.WalletService;
|
import com.m2049r.xmrwallet.service.WalletService;
|
||||||
|
import com.m2049r.xmrwallet.util.ColorHelper;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor;
|
import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor;
|
||||||
import com.m2049r.xmrwallet.widget.Toolbar;
|
import com.m2049r.xmrwallet.widget.Toolbar;
|
||||||
|
@ -312,11 +315,6 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateStreetMode() {
|
private void updateStreetMode() {
|
||||||
if (isStreetMode()) {
|
|
||||||
toolbar.setBackgroundResource(R.drawable.backgound_toolbar_streetmode);
|
|
||||||
} else {
|
|
||||||
showNet();
|
|
||||||
}
|
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -426,10 +424,10 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
toolbar.setBackgroundResource(R.drawable.backgound_toolbar_mainnet);
|
toolbar.setBackgroundResource(R.drawable.backgound_toolbar_mainnet);
|
||||||
break;
|
break;
|
||||||
case NetworkType_Testnet:
|
case NetworkType_Testnet:
|
||||||
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
|
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
|
||||||
break;
|
break;
|
||||||
case NetworkType_Stagenet:
|
case NetworkType_Stagenet:
|
||||||
toolbar.setBackgroundResource(R.color.colorPrimaryDark);
|
toolbar.setBackgroundResource(ColorHelper.getThemedResourceId(this, R.attr.colorPrimaryDark));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalStateException("Unsupported Network: " + WalletManager.getInstance().getNetworkType());
|
throw new IllegalStateException("Unsupported Network: " + WalletManager.getInstance().getNetworkType());
|
||||||
|
@ -667,7 +665,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
haveWallet = true;
|
haveWallet = true;
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
|
|
||||||
enableStreetMode(requestStreetMode);
|
if (requestStreetMode) onEnableStreetMode();
|
||||||
|
|
||||||
final WalletFragment walletFragment = (WalletFragment)
|
final WalletFragment walletFragment = (WalletFragment)
|
||||||
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
getSupportFragmentManager().findFragmentById(R.id.fragment_container);
|
||||||
|
@ -872,7 +870,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
|
||||||
builder.setMessage(getString(R.string.details_alert_message))
|
builder.setMessage(getString(R.string.details_alert_message))
|
||||||
.setPositiveButton(getString(R.string.details_alert_yes), dialogClickListener)
|
.setPositiveButton(getString(R.string.details_alert_yes), dialogClickListener)
|
||||||
.setNegativeButton(getString(R.string.details_alert_no), dialogClickListener)
|
.setNegativeButton(getString(R.string.details_alert_no), dialogClickListener)
|
||||||
|
@ -1093,7 +1091,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste
|
||||||
final LayoutInflater li = LayoutInflater.from(this);
|
final LayoutInflater li = LayoutInflater.from(this);
|
||||||
final View promptsView = li.inflate(R.layout.prompt_rename, null);
|
final View promptsView = li.inflate(R.layout.prompt_rename, null);
|
||||||
|
|
||||||
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
|
final AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(this);
|
||||||
alertDialogBuilder.setView(promptsView);
|
alertDialogBuilder.setView(promptsView);
|
||||||
|
|
||||||
final EditText etRename = promptsView.findViewById(R.id.etRename);
|
final EditText etRename = promptsView.findViewById(R.id.etRename);
|
||||||
|
|
|
@ -17,12 +17,10 @@
|
||||||
package com.m2049r.xmrwallet;
|
package com.m2049r.xmrwallet;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v7.widget.RecyclerView;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
|
@ -38,6 +36,11 @@ import android.widget.ProgressBar;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.github.brnunes.swipeablerecyclerview.SwipeableRecyclerViewTouchListener;
|
import com.github.brnunes.swipeablerecyclerview.SwipeableRecyclerViewTouchListener;
|
||||||
import com.m2049r.xmrwallet.layout.TransactionInfoAdapter;
|
import com.m2049r.xmrwallet.layout.TransactionInfoAdapter;
|
||||||
import com.m2049r.xmrwallet.model.TransactionInfo;
|
import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||||
|
@ -70,6 +73,8 @@ public class WalletFragment extends Fragment
|
||||||
private ProgressBar pbProgress;
|
private ProgressBar pbProgress;
|
||||||
private Button bReceive;
|
private Button bReceive;
|
||||||
private Button bSend;
|
private Button bSend;
|
||||||
|
private ImageView ivStreetGunther;
|
||||||
|
private Drawable streetGunther = null;
|
||||||
|
|
||||||
private Spinner sCurrency;
|
private Spinner sCurrency;
|
||||||
|
|
||||||
|
@ -97,11 +102,12 @@ public class WalletFragment extends Fragment
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
View view = inflater.inflate(R.layout.fragment_wallet, container, false);
|
View view = inflater.inflate(R.layout.fragment_wallet, container, false);
|
||||||
|
|
||||||
|
ivStreetGunther = view.findViewById(R.id.ivStreetGunther);
|
||||||
tvStreetView = view.findViewById(R.id.tvStreetView);
|
tvStreetView = view.findViewById(R.id.tvStreetView);
|
||||||
llBalance = view.findViewById(R.id.llBalance);
|
llBalance = view.findViewById(R.id.llBalance);
|
||||||
flExchange = view.findViewById(R.id.flExchange);
|
flExchange = view.findViewById(R.id.flExchange);
|
||||||
((ProgressBar) view.findViewById(R.id.pbExchange)).getIndeterminateDrawable().
|
((ProgressBar) view.findViewById(R.id.pbExchange)).getIndeterminateDrawable().
|
||||||
setColorFilter(getResources().getColor(R.color.trafficGray),
|
setColorFilter(getResources().getColor(R.color.progress_circle),
|
||||||
android.graphics.PorterDuff.Mode.MULTIPLY);
|
android.graphics.PorterDuff.Mode.MULTIPLY);
|
||||||
|
|
||||||
tvProgress = view.findViewById(R.id.tvProgress);
|
tvProgress = view.findViewById(R.id.tvProgress);
|
||||||
|
@ -199,13 +205,15 @@ public class WalletFragment extends Fragment
|
||||||
|
|
||||||
void showBalance(String balance) {
|
void showBalance(String balance) {
|
||||||
tvBalance.setText(balance);
|
tvBalance.setText(balance);
|
||||||
if (!activityCallback.isStreetMode()) {
|
final boolean streetMode = activityCallback.isStreetMode();
|
||||||
|
if (!streetMode) {
|
||||||
llBalance.setVisibility(View.VISIBLE);
|
llBalance.setVisibility(View.VISIBLE);
|
||||||
tvStreetView.setVisibility(View.INVISIBLE);
|
tvStreetView.setVisibility(View.INVISIBLE);
|
||||||
} else {
|
} else {
|
||||||
llBalance.setVisibility(View.INVISIBLE);
|
llBalance.setVisibility(View.INVISIBLE);
|
||||||
tvStreetView.setVisibility(View.VISIBLE);
|
tvStreetView.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
setStreetModeBackground(streetMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void showUnconfirmed(double unconfirmedAmount) {
|
void showUnconfirmed(double unconfirmedAmount) {
|
||||||
|
@ -537,4 +545,13 @@ public class WalletFragment extends Fragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setStreetModeBackground(boolean enable) {
|
||||||
|
//TODO figure out why gunther disappears on return from send although he is still set
|
||||||
|
if (enable) {
|
||||||
|
if (streetGunther == null)
|
||||||
|
streetGunther = ContextCompat.getDrawable(getContext(), R.drawable.ic_gunther_streetmode);
|
||||||
|
ivStreetGunther.setImageDrawable(streetGunther);
|
||||||
|
} else
|
||||||
|
ivStreetGunther.setImageDrawable(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,12 @@ package com.m2049r.xmrwallet;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.model.NetworkType;
|
import com.m2049r.xmrwallet.model.NetworkType;
|
||||||
|
import com.m2049r.xmrwallet.util.DayNightMode;
|
||||||
import com.m2049r.xmrwallet.util.LocaleHelper;
|
import com.m2049r.xmrwallet.util.LocaleHelper;
|
||||||
|
import com.m2049r.xmrwallet.util.NightmodeHelper;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
|
@ -34,18 +37,23 @@ public class XmrWalletApplication extends Application {
|
||||||
if (BuildConfig.DEBUG) {
|
if (BuildConfig.DEBUG) {
|
||||||
Timber.plant(new Timber.DebugTree());
|
Timber.plant(new Timber.DebugTree());
|
||||||
}
|
}
|
||||||
|
NightmodeHelper.setPreferredNightmode(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void attachBaseContext(Context context) {
|
protected void attachBaseContext(Context context) {
|
||||||
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
|
super.attachBaseContext(LocaleHelper.setPreferredLocale(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration configuration) {
|
public void onConfigurationChanged(Configuration configuration) {
|
||||||
super.onConfigurationChanged(configuration);
|
super.onConfigurationChanged(configuration);
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
LocaleHelper.updateSystemDefaultLocale(configuration.getLocales().get(0));
|
||||||
|
} else {
|
||||||
LocaleHelper.updateSystemDefaultLocale(configuration.locale);
|
LocaleHelper.updateSystemDefaultLocale(configuration.locale);
|
||||||
LocaleHelper.setLocale(XmrWalletApplication.this, LocaleHelper.getLocale(XmrWalletApplication.this));
|
}
|
||||||
|
LocaleHelper.setPreferredLocale(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
static public NetworkType getNetworkType() {
|
static public NetworkType getNetworkType() {
|
||||||
|
@ -54,7 +62,7 @@ public class XmrWalletApplication extends Application {
|
||||||
return NetworkType.NetworkType_Mainnet;
|
return NetworkType.NetworkType_Mainnet;
|
||||||
case "stagenet":
|
case "stagenet":
|
||||||
return NetworkType.NetworkType_Stagenet;
|
return NetworkType.NetworkType_Stagenet;
|
||||||
case "testnet":
|
case "devnet": // flavors cannot start with "test"
|
||||||
return NetworkType.NetworkType_Testnet;
|
return NetworkType.NetworkType_Testnet;
|
||||||
default:
|
default:
|
||||||
throw new IllegalStateException("unknown net flavor " + BuildConfig.FLAVOR_net);
|
throw new IllegalStateException("unknown net flavor " + BuildConfig.FLAVOR_net);
|
||||||
|
|
|
@ -16,26 +16,25 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.dialog;
|
package com.m2049r.xmrwallet.dialog;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
import android.support.v4.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.BuildConfig;
|
import com.m2049r.xmrwallet.BuildConfig;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
@ -63,9 +62,9 @@ public class AboutFragment extends DialogFragment {
|
||||||
((TextView) view.findViewById(R.id.tvHelp)).setText(Html.fromHtml(getLicencesHtml()));
|
((TextView) view.findViewById(R.id.tvHelp)).setText(Html.fromHtml(getLicencesHtml()));
|
||||||
((TextView) view.findViewById(R.id.tvVersion)).setText(getString(R.string.about_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
|
((TextView) view.findViewById(R.id.tvVersion)).setText(getString(R.string.about_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
|
||||||
builder.setView(view);
|
.setView(view)
|
||||||
builder.setNegativeButton(R.string.about_close,
|
.setNegativeButton(R.string.about_close,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
|
|
@ -16,19 +16,20 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.dialog;
|
package com.m2049r.xmrwallet.dialog;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.DialogFragment;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
public class CreditsFragment extends DialogFragment {
|
public class CreditsFragment extends DialogFragment {
|
||||||
|
@ -54,16 +55,15 @@ public class CreditsFragment extends DialogFragment {
|
||||||
|
|
||||||
((TextView) view.findViewById(R.id.tvCredits)).setText(Html.fromHtml(getString(R.string.credits_text)));
|
((TextView) view.findViewById(R.id.tvCredits)).setText(Html.fromHtml(getString(R.string.credits_text)));
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
|
||||||
builder.setView(view);
|
.setView(view)
|
||||||
builder.setNegativeButton(R.string.about_close,
|
.setNegativeButton(R.string.about_close,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -16,19 +16,20 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.dialog;
|
package com.m2049r.xmrwallet.dialog;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.DialogFragment;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
public class HelpFragment extends DialogFragment {
|
public class HelpFragment extends DialogFragment {
|
||||||
|
@ -65,9 +66,9 @@ public class HelpFragment extends DialogFragment {
|
||||||
if (helpId > 0)
|
if (helpId > 0)
|
||||||
((TextView) view.findViewById(R.id.tvHelp)).setText(Html.fromHtml(getString(helpId)));
|
((TextView) view.findViewById(R.id.tvHelp)).setText(Html.fromHtml(getString(helpId)));
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
|
||||||
builder.setView(view);
|
.setView(view)
|
||||||
builder.setNegativeButton(R.string.help_ok,
|
.setNegativeButton(R.string.help_ok,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
|
|
@ -16,19 +16,20 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.dialog;
|
package com.m2049r.xmrwallet.dialog;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.DialogFragment;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
public class PrivacyFragment extends DialogFragment {
|
public class PrivacyFragment extends DialogFragment {
|
||||||
|
@ -54,9 +55,9 @@ public class PrivacyFragment extends DialogFragment {
|
||||||
|
|
||||||
((TextView) view.findViewById(R.id.tvCredits)).setText(Html.fromHtml(getString(R.string.privacy_policy)));
|
((TextView) view.findViewById(R.id.tvCredits)).setText(Html.fromHtml(getString(R.string.privacy_policy)));
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getActivity())
|
||||||
builder.setView(view);
|
.setView(view)
|
||||||
builder.setNegativeButton(R.string.about_close,
|
.setNegativeButton(R.string.about_close,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
|
|
@ -17,7 +17,6 @@ package com.m2049r.xmrwallet.dialog;
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -26,6 +25,8 @@ import android.view.WindowManager;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.BuildConfig;
|
import com.m2049r.xmrwallet.BuildConfig;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
|
|
|
@ -19,8 +19,6 @@ package com.m2049r.xmrwallet.fragment.send;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.nfc.NfcManager;
|
import android.nfc.NfcManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.support.v7.widget.CardView;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
|
@ -36,6 +34,7 @@ import android.widget.ImageButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.data.BarcodeData;
|
import com.m2049r.xmrwallet.data.BarcodeData;
|
||||||
import com.m2049r.xmrwallet.data.TxData;
|
import com.m2049r.xmrwallet.data.TxData;
|
||||||
|
@ -86,7 +85,7 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||||
private EditText etDummy;
|
private EditText etDummy;
|
||||||
private TextInputLayout etAddress;
|
private TextInputLayout etAddress;
|
||||||
private TextInputLayout etNotes;
|
private TextInputLayout etNotes;
|
||||||
private CardView cvScan;
|
private View cvScan;
|
||||||
private View tvPaymentIdIntegrated;
|
private View tvPaymentIdIntegrated;
|
||||||
private TextView tvXmrTo;
|
private TextView tvXmrTo;
|
||||||
private View llXmrTo;
|
private View llXmrTo;
|
||||||
|
|
|
@ -18,6 +18,12 @@ package com.m2049r.xmrwallet.fragment.send;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
import android.text.Editable;
|
||||||
|
import android.text.TextWatcher;
|
||||||
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -25,6 +31,8 @@ import android.widget.Button;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.data.TxData;
|
import com.m2049r.xmrwallet.data.TxData;
|
||||||
import com.m2049r.xmrwallet.data.TxDataBtc;
|
import com.m2049r.xmrwallet.data.TxDataBtc;
|
||||||
|
|
|
@ -80,12 +80,10 @@ public class SendBtcSuccessWizardFragment extends SendWizardFragment {
|
||||||
R.layout.fragment_send_btc_success, container, false);
|
R.layout.fragment_send_btc_success, container, false);
|
||||||
|
|
||||||
bCopyTxId = view.findViewById(R.id.bCopyTxId);
|
bCopyTxId = view.findViewById(R.id.bCopyTxId);
|
||||||
bCopyTxId.setOnClickListener(new View.OnClickListener() {
|
bCopyTxId.setEnabled(false);
|
||||||
@Override
|
bCopyTxId.setOnClickListener(v -> {
|
||||||
public void onClick(View v) {
|
|
||||||
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
|
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
|
||||||
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
tvXmrToAmount = view.findViewById(R.id.tvXmrToAmount);
|
tvXmrToAmount = view.findViewById(R.id.tvXmrToAmount);
|
||||||
|
@ -143,7 +141,6 @@ public class SendBtcSuccessWizardFragment extends SendWizardFragment {
|
||||||
if (committedTx != null) {
|
if (committedTx != null) {
|
||||||
tvTxId.setText(committedTx.txId);
|
tvTxId.setText(committedTx.txId);
|
||||||
bCopyTxId.setEnabled(true);
|
bCopyTxId.setEnabled(true);
|
||||||
bCopyTxId.setImageResource(R.drawable.ic_content_copy_black_24dp);
|
|
||||||
tvTxAmount.setText(getString(R.string.send_amount, Helper.getDisplayAmount(committedTx.amount)));
|
tvTxAmount.setText(getString(R.string.send_amount, Helper.getDisplayAmount(committedTx.amount)));
|
||||||
tvTxFee.setText(getString(R.string.send_fee, Helper.getDisplayAmount(committedTx.fee)));
|
tvTxFee.setText(getString(R.string.send_fee, Helper.getDisplayAmount(committedTx.fee)));
|
||||||
if (btcData != null) {
|
if (btcData != null) {
|
||||||
|
|
|
@ -17,12 +17,18 @@
|
||||||
package com.m2049r.xmrwallet.fragment.send;
|
package com.m2049r.xmrwallet.fragment.send;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.text.Editable;
|
||||||
|
import android.text.TextWatcher;
|
||||||
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.data.TxData;
|
import com.m2049r.xmrwallet.data.TxData;
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
|
@ -147,7 +153,7 @@ public class SendConfirmWizardFragment extends SendWizardFragment implements Sen
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showAlert(String title, String message) {
|
private void showAlert(String title, String message) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getActivity());
|
||||||
builder.setCancelable(true).
|
builder.setCancelable(true).
|
||||||
setTitle(title).
|
setTitle(title).
|
||||||
setMessage(message).
|
setMessage(message).
|
||||||
|
|
|
@ -18,13 +18,7 @@ package com.m2049r.xmrwallet.fragment.send;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentStatePagerAdapter;
|
|
||||||
import android.support.v4.view.ViewPager;
|
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -35,6 +29,12 @@ import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.OnBackPressedListener;
|
import com.m2049r.xmrwallet.OnBackPressedListener;
|
||||||
import com.m2049r.xmrwallet.OnUriScannedListener;
|
import com.m2049r.xmrwallet.OnUriScannedListener;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
@ -93,8 +93,6 @@ public class SendFragment extends Fragment
|
||||||
}
|
}
|
||||||
|
|
||||||
private EditText etDummy;
|
private EditText etDummy;
|
||||||
private Drawable arrowPrev;
|
|
||||||
private Drawable arrowNext;
|
|
||||||
|
|
||||||
private View llNavBar;
|
private View llNavBar;
|
||||||
private DotBar dotBar;
|
private DotBar dotBar;
|
||||||
|
@ -125,8 +123,6 @@ public class SendFragment extends Fragment
|
||||||
dotBar = view.findViewById(R.id.dotBar);
|
dotBar = view.findViewById(R.id.dotBar);
|
||||||
bPrev = view.findViewById(R.id.bPrev);
|
bPrev = view.findViewById(R.id.bPrev);
|
||||||
bNext = view.findViewById(R.id.bNext);
|
bNext = view.findViewById(R.id.bNext);
|
||||||
arrowPrev = getResources().getDrawable(R.drawable.ic_navigate_prev_white_24dp);
|
|
||||||
arrowNext = getResources().getDrawable(R.drawable.ic_navigate_next_white_24dp);
|
|
||||||
|
|
||||||
ViewGroup llNotice = view.findViewById(R.id.llNotice);
|
ViewGroup llNotice = view.findViewById(R.id.llNotice);
|
||||||
Notice.showAll(llNotice, ".*_send");
|
Notice.showAll(llNotice, ".*_send");
|
||||||
|
@ -214,16 +210,16 @@ public class SendFragment extends Fragment
|
||||||
CharSequence nextLabel = pagerAdapter.getPageTitle(position + 1);
|
CharSequence nextLabel = pagerAdapter.getPageTitle(position + 1);
|
||||||
bNext.setText(nextLabel);
|
bNext.setText(nextLabel);
|
||||||
if (nextLabel != null) {
|
if (nextLabel != null) {
|
||||||
bNext.setCompoundDrawablesWithIntrinsicBounds(null, null, arrowNext, null);
|
bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_navigate_next_white_24dp, 0);
|
||||||
} else {
|
} else {
|
||||||
bNext.setCompoundDrawables(null, null, null, null);
|
bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
CharSequence prevLabel = pagerAdapter.getPageTitle(position - 1);
|
CharSequence prevLabel = pagerAdapter.getPageTitle(position - 1);
|
||||||
bPrev.setText(prevLabel);
|
bPrev.setText(prevLabel);
|
||||||
if (prevLabel != null) {
|
if (prevLabel != null) {
|
||||||
bPrev.setCompoundDrawablesWithIntrinsicBounds(arrowPrev, null, null, null);
|
bPrev.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_navigate_prev_white_24dp, 0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
bPrev.setCompoundDrawables(null, null, null, null);
|
bPrev.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,12 +76,10 @@ public class SendSuccessWizardFragment extends SendWizardFragment {
|
||||||
R.layout.fragment_send_success, container, false);
|
R.layout.fragment_send_success, container, false);
|
||||||
|
|
||||||
bCopyTxId = view.findViewById(R.id.bCopyTxId);
|
bCopyTxId = view.findViewById(R.id.bCopyTxId);
|
||||||
bCopyTxId.setOnClickListener(new View.OnClickListener() {
|
bCopyTxId.setEnabled(false);
|
||||||
@Override
|
bCopyTxId.setOnClickListener(v -> {
|
||||||
public void onClick(View v) {
|
|
||||||
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
|
Helper.clipBoardCopy(getActivity(), getString(R.string.label_send_txid), tvTxId.getText().toString());
|
||||||
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getActivity(), getString(R.string.message_copy_txid), Toast.LENGTH_SHORT).show();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
tvTxId = view.findViewById(R.id.tvTxId);
|
tvTxId = view.findViewById(R.id.tvTxId);
|
||||||
|
@ -116,7 +114,6 @@ public class SendSuccessWizardFragment extends SendWizardFragment {
|
||||||
if (committedTx != null) {
|
if (committedTx != null) {
|
||||||
tvTxId.setText(committedTx.txId);
|
tvTxId.setText(committedTx.txId);
|
||||||
bCopyTxId.setEnabled(true);
|
bCopyTxId.setEnabled(true);
|
||||||
bCopyTxId.setImageResource(R.drawable.ic_content_copy_black_24dp);
|
|
||||||
|
|
||||||
if (sendListener.getActivityCallback().isStreetMode()
|
if (sendListener.getActivityCallback().isStreetMode()
|
||||||
&& (sendListener.getTxData().getAmount() == Wallet.SWEEP_ALL)) {
|
&& (sendListener.getTxData().getAmount() == Wallet.SWEEP_ALL)) {
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.fragment.send;
|
package com.m2049r.xmrwallet.fragment.send;
|
||||||
|
|
||||||
import android.support.v4.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.layout.SpendViewPager;
|
import com.m2049r.xmrwallet.layout.SpendViewPager;
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
package com.m2049r.xmrwallet.layout;
|
package com.m2049r.xmrwallet.layout;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -170,16 +170,16 @@ public class NodeInfoAdapter extends RecyclerView.Adapter<NodeInfoAdapter.ViewHo
|
||||||
if (nodeInfo.isValid()) {
|
if (nodeInfo.isValid()) {
|
||||||
final double ping = nodeInfo.getResponseTime();
|
final double ping = nodeInfo.getResponseTime();
|
||||||
if (ping < NodeInfo.PING_GOOD) {
|
if (ping < NodeInfo.PING_GOOD) {
|
||||||
return R.drawable.ic_signal_wifi_4_bar_black_24dp;
|
return R.drawable.ic_signal_wifi_4_bar_24dp;
|
||||||
} else if (ping < NodeInfo.PING_MEDIUM) {
|
} else if (ping < NodeInfo.PING_MEDIUM) {
|
||||||
return R.drawable.ic_signal_wifi_3_bar_black_24dp;
|
return R.drawable.ic_signal_wifi_3_bar_24dp;
|
||||||
} else if (ping < NodeInfo.PING_BAD) {
|
} else if (ping < NodeInfo.PING_BAD) {
|
||||||
return R.drawable.ic_signal_wifi_2_bar_black_24dp;
|
return R.drawable.ic_signal_wifi_2_bar_24dp;
|
||||||
} else {
|
} else {
|
||||||
return R.drawable.ic_signal_wifi_1_bar_black_24dp;
|
return R.drawable.ic_signal_wifi_1_bar_24dp;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return R.drawable.ic_signal_wifi_off_black_24dp;
|
return R.drawable.ic_signal_wifi_off_24dp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
package com.m2049r.xmrwallet.layout;
|
package com.m2049r.xmrwallet.layout;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v4.view.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
package com.m2049r.xmrwallet.layout;
|
package com.m2049r.xmrwallet.layout;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v4.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -30,7 +30,6 @@ import com.m2049r.xmrwallet.model.TransactionInfo;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
import com.m2049r.xmrwallet.data.UserNotes;
|
import com.m2049r.xmrwallet.data.UserNotes;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
@ -61,8 +60,8 @@ public class TransactionInfoAdapter extends RecyclerView.Adapter<TransactionInfo
|
||||||
|
|
||||||
public TransactionInfoAdapter(Context context, OnInteractionListener listener) {
|
public TransactionInfoAdapter(Context context, OnInteractionListener listener) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
inboundColour = ContextCompat.getColor(context, R.color.tx_green);
|
inboundColour = ContextCompat.getColor(context, R.color.tx_plus);
|
||||||
outboundColour = ContextCompat.getColor(context, R.color.tx_red);
|
outboundColour = ContextCompat.getColor(context, R.color.tx_minus);
|
||||||
pendingColour = ContextCompat.getColor(context, R.color.tx_pending);
|
pendingColour = ContextCompat.getColor(context, R.color.tx_pending);
|
||||||
failedColour = ContextCompat.getColor(context, R.color.tx_failed);
|
failedColour = ContextCompat.getColor(context, R.color.tx_failed);
|
||||||
infoItems = new ArrayList<>();
|
infoItems = new ArrayList<>();
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
package com.m2049r.xmrwallet.layout;
|
package com.m2049r.xmrwallet.layout;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v7.widget.PopupMenu;
|
import androidx.appcompat.widget.PopupMenu;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.model;
|
package com.m2049r.xmrwallet.model;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.data.TxData;
|
import com.m2049r.xmrwallet.data.TxData;
|
||||||
|
|
||||||
|
|
|
@ -18,14 +18,15 @@ package com.m2049r.xmrwallet.onboarding;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.design.widget.TabLayout;
|
|
||||||
import android.support.v4.view.ViewPager;
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
|
import com.google.android.material.tabs.TabLayout;
|
||||||
import com.m2049r.xmrwallet.LoginActivity;
|
import com.m2049r.xmrwallet.LoginActivity;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.util.KeyStoreHelper;
|
import com.m2049r.xmrwallet.util.KeyStoreHelper;
|
||||||
|
@ -44,7 +45,7 @@ public class OnBoardingActivity extends AppCompatActivity implements OnBoardingA
|
||||||
nextButton = findViewById(R.id.buttonNext);
|
nextButton = findViewById(R.id.buttonNext);
|
||||||
|
|
||||||
pager = findViewById(R.id.pager);
|
pager = findViewById(R.id.pager);
|
||||||
pagerAdapter = new OnBoardingAdapter(getApplicationContext(), this);
|
pagerAdapter = new OnBoardingAdapter(this, this);
|
||||||
pager.setAdapter(pagerAdapter);
|
pager.setAdapter(pagerAdapter);
|
||||||
int pixels = (int) TypedValue.applyDimension(
|
int pixels = (int) TypedValue.applyDimension(
|
||||||
TypedValue.COMPLEX_UNIT_DIP, 16, getResources().getDisplayMetrics());
|
TypedValue.COMPLEX_UNIT_DIP, 16, getResources().getDisplayMetrics());
|
||||||
|
|
|
@ -18,9 +18,6 @@ package com.m2049r.xmrwallet.onboarding;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.v4.content.ContextCompat;
|
|
||||||
import android.support.v4.view.PagerAdapter;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -28,6 +25,10 @@ import android.widget.CheckBox;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.viewpager.widget.PagerAdapter;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
|
@ -18,10 +18,11 @@
|
||||||
package com.m2049r.xmrwallet.onboarding;
|
package com.m2049r.xmrwallet.onboarding;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.v4.view.ViewPager;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
public class OnBoardingViewPager extends ViewPager {
|
public class OnBoardingViewPager extends ViewPager {
|
||||||
|
|
||||||
public enum SwipeDirection {
|
public enum SwipeDirection {
|
||||||
|
|
|
@ -31,9 +31,10 @@ import android.os.IBinder;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.annotation.RequiresApi;
|
import androidx.annotation.Nullable;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import androidx.annotation.RequiresApi;
|
||||||
|
import androidx.core.app.NotificationCompat;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.WalletActivity;
|
import com.m2049r.xmrwallet.WalletActivity;
|
||||||
|
@ -429,7 +430,7 @@ public class WalletService extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void attachBaseContext(Context context) {
|
protected void attachBaseContext(Context context) {
|
||||||
super.attachBaseContext(LocaleHelper.setLocale(context, LocaleHelper.getLocale(context)));
|
super.attachBaseContext(LocaleHelper.setPreferredLocale(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WalletServiceBinder extends Binder {
|
public class WalletServiceBinder extends Binder {
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
package com.m2049r.xmrwallet.service.exchange.api;
|
package com.m2049r.xmrwallet.service.exchange.api;
|
||||||
|
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
|
||||||
public interface ExchangeApi {
|
public interface ExchangeApi {
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.ecb;
|
package com.m2049r.xmrwallet.service.exchange.ecb;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.ecb;
|
package com.m2049r.xmrwallet.service.exchange.ecb;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.kraken;
|
package com.m2049r.xmrwallet.service.exchange.kraken;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.kraken;
|
package com.m2049r.xmrwallet.service.exchange.kraken;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeException;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.krakenEcb;
|
package com.m2049r.xmrwallet.service.exchange.krakenEcb;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
|
|
|
@ -16,12 +16,10 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.service.exchange.krakenEcb;
|
package com.m2049r.xmrwallet.service.exchange.krakenEcb;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
class ExchangeRateImpl implements ExchangeRate {
|
class ExchangeRateImpl implements ExchangeRate {
|
||||||
private final String baseCurrency;
|
private final String baseCurrency;
|
||||||
private final String quoteCurrency;
|
private final String quoteCurrency;
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
|
|
||||||
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
|
public class ColorHelper {
|
||||||
|
static public int getThemedResourceId(Context ctx, int attrId) {
|
||||||
|
TypedArray styledAttributes = ctx.getTheme().obtainStyledAttributes(R.style.MyMaterialTheme, new int[]{attrId});
|
||||||
|
return styledAttributes.getResourceId(0, 0);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
|
|
||||||
|
public enum DayNightMode {
|
||||||
|
// order must match R.array.daynight_themes
|
||||||
|
AUTO(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM),
|
||||||
|
DAY(AppCompatDelegate.MODE_NIGHT_NO),
|
||||||
|
NIGHT(AppCompatDelegate.MODE_NIGHT_YES),
|
||||||
|
UNKNOWN(AppCompatDelegate.MODE_NIGHT_UNSPECIFIED);
|
||||||
|
|
||||||
|
final private int nightMode;
|
||||||
|
|
||||||
|
DayNightMode(int nightMode) {
|
||||||
|
this.nightMode = nightMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNightMode() {
|
||||||
|
return nightMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public DayNightMode getValue(int nightMode) {
|
||||||
|
for (DayNightMode mode : DayNightMode.values()) {
|
||||||
|
if (mode.nightMode == nightMode)
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
return UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,7 +18,6 @@ package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipDescription;
|
import android.content.ClipDescription;
|
||||||
|
@ -38,8 +37,6 @@ import android.os.Build;
|
||||||
import android.os.CancellationSignal;
|
import android.os.CancellationSignal;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.StrictMode;
|
import android.os.StrictMode;
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.support.v4.content.ContextCompat;
|
|
||||||
import android.system.ErrnoException;
|
import android.system.ErrnoException;
|
||||||
import android.system.Os;
|
import android.system.Os;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
|
@ -55,6 +52,11 @@ import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.BuildConfig;
|
import com.m2049r.xmrwallet.BuildConfig;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.model.NetworkType;
|
import com.m2049r.xmrwallet.model.NetworkType;
|
||||||
|
@ -424,7 +426,7 @@ public class Helper {
|
||||||
LayoutInflater li = LayoutInflater.from(context);
|
LayoutInflater li = LayoutInflater.from(context);
|
||||||
final View promptsView = li.inflate(R.layout.prompt_password, null);
|
final View promptsView = li.inflate(R.layout.prompt_password, null);
|
||||||
|
|
||||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
|
AlertDialog.Builder alertDialogBuilder = new MaterialAlertDialogBuilder(context);
|
||||||
alertDialogBuilder.setView(promptsView);
|
alertDialogBuilder.setView(promptsView);
|
||||||
|
|
||||||
final TextInputLayout etPassword = promptsView.findViewById(R.id.etPassword);
|
final TextInputLayout etPassword = promptsView.findViewById(R.id.etPassword);
|
||||||
|
|
|
@ -24,7 +24,7 @@ import android.os.Build;
|
||||||
import android.security.KeyPairGeneratorSpec;
|
import android.security.KeyPairGeneratorSpec;
|
||||||
import android.security.keystore.KeyGenParameterSpec;
|
import android.security.keystore.KeyGenParameterSpec;
|
||||||
import android.security.keystore.KeyProperties;
|
import android.security.keystore.KeyProperties;
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
@ -8,7 +8,6 @@ import android.preference.PreferenceManager;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
public class LocaleHelper {
|
public class LocaleHelper {
|
||||||
|
@ -17,6 +16,7 @@ public class LocaleHelper {
|
||||||
|
|
||||||
public static ArrayList<Locale> getAvailableLocales(Context context) {
|
public static ArrayList<Locale> getAvailableLocales(Context context) {
|
||||||
ArrayList<Locale> locales = new ArrayList<>();
|
ArrayList<Locale> locales = new ArrayList<>();
|
||||||
|
// R.string.available_locales gets generated in build.gradle by enumerating values-* folders
|
||||||
String[] availableLocales = context.getString(R.string.available_locales).split(",");
|
String[] availableLocales = context.getString(R.string.available_locales).split(",");
|
||||||
|
|
||||||
for (String localeName : availableLocales) {
|
for (String localeName : availableLocales) {
|
||||||
|
@ -36,20 +36,22 @@ public class LocaleHelper {
|
||||||
return displayName;
|
return displayName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getLocale(Context context) {
|
public static Context setPreferredLocale(Context context) {
|
||||||
return getPreferredLocale(context);
|
return setLocale(context, getPreferredLanguageTag(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Context setLocale(Context context, String locale) {
|
public static Context setAndSaveLocale(Context context, String langaugeTag) {
|
||||||
setPreferredLocale(context, locale);
|
savePreferredLangaugeTag(context, langaugeTag);
|
||||||
|
return setLocale(context, langaugeTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Context setLocale(Context context, String languageTag) {
|
||||||
|
Locale locale = (languageTag.isEmpty()) ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(languageTag);
|
||||||
|
Locale.setDefault(locale);
|
||||||
|
|
||||||
Locale newLocale = (locale.isEmpty()) ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(locale);
|
|
||||||
Configuration configuration = context.getResources().getConfiguration();
|
Configuration configuration = context.getResources().getConfiguration();
|
||||||
|
configuration.setLocale(locale);
|
||||||
Locale.setDefault(newLocale);
|
configuration.setLayoutDirection(locale);
|
||||||
|
|
||||||
configuration.setLocale(newLocale);
|
|
||||||
configuration.setLayoutDirection(newLocale);
|
|
||||||
|
|
||||||
return context.createConfigurationContext(configuration);
|
return context.createConfigurationContext(configuration);
|
||||||
}
|
}
|
||||||
|
@ -68,13 +70,18 @@ public class LocaleHelper {
|
||||||
+ str.substring(firstCodePointLen);
|
+ str.substring(firstCodePointLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getPreferredLocale(Context context) {
|
public static Locale getPreferredLocale(Context context) {
|
||||||
|
String languageTag = getPreferredLanguageTag(context);
|
||||||
|
return languageTag.isEmpty() ? SYSTEM_DEFAULT_LOCALE : Locale.forLanguageTag(languageTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getPreferredLanguageTag(Context context) {
|
||||||
return PreferenceManager.getDefaultSharedPreferences(context)
|
return PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
.getString(PREFERRED_LOCALE_KEY, "");
|
.getString(PREFERRED_LOCALE_KEY, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("ApplySharedPref")
|
@SuppressLint("ApplySharedPref")
|
||||||
private static void setPreferredLocale(Context context, String locale) {
|
private static void savePreferredLangaugeTag(Context context, String locale) {
|
||||||
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
||||||
.putString(PREFERRED_LOCALE_KEY, locale).commit();
|
.putString(PREFERRED_LOCALE_KEY, locale).commit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
|
|
||||||
|
public class NightmodeHelper {
|
||||||
|
private static final String PREFERRED_NIGHTMODE_KEY = "preferred_nightmode";
|
||||||
|
|
||||||
|
public static DayNightMode getPreferredNightmode(Context context) {
|
||||||
|
return DayNightMode.valueOf(PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
|
.getString(PREFERRED_NIGHTMODE_KEY, "UNKNOWN"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setPreferredNightmode(Context context) {
|
||||||
|
final DayNightMode mode = DayNightMode.valueOf(PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
|
.getString(PREFERRED_NIGHTMODE_KEY, "UNKNOWN"));
|
||||||
|
if (mode == DayNightMode.UNKNOWN) setAndSavePreferredNightmode(context, DayNightMode.AUTO);
|
||||||
|
setNightMode(mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setAndSavePreferredNightmode(Context context, DayNightMode mode) {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
||||||
|
.putString(PREFERRED_NIGHTMODE_KEY, mode.name()).apply();
|
||||||
|
setNightMode(mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setNightMode(DayNightMode mode) {
|
||||||
|
AppCompatDelegate.setDefaultNightMode(mode.getNightMode());
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,8 +18,8 @@ package com.m2049r.xmrwallet.util;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
package com.m2049r.xmrwallet.widget;
|
package com.m2049r.xmrwallet.widget;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.design.widget.TextInputLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ package com.m2049r.xmrwallet.widget;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.v7.widget.AppCompatAutoCompleteTextView;
|
import androidx.appcompat.widget.AppCompatAutoCompleteTextView;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
public class DropDownEditText extends AppCompatAutoCompleteTextView {
|
public class DropDownEditText extends AppCompatAutoCompleteTextView {
|
||||||
|
|
|
@ -28,13 +28,13 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
|
@ -51,7 +51,7 @@ import timber.log.Timber;
|
||||||
public class ExchangeEditText extends LinearLayout {
|
public class ExchangeEditText extends LinearLayout {
|
||||||
|
|
||||||
private double getEnteredAmount() {
|
private double getEnteredAmount() {
|
||||||
String enteredAmount = etAmountA.getText().toString();
|
String enteredAmount = etAmountA.getEditText().getText().toString();
|
||||||
try {
|
try {
|
||||||
return Double.parseDouble(enteredAmount);
|
return Double.parseDouble(enteredAmount);
|
||||||
} catch (NumberFormatException ex) {
|
} catch (NumberFormatException ex) {
|
||||||
|
@ -98,7 +98,7 @@ public class ExchangeEditText extends LinearLayout {
|
||||||
|
|
||||||
public void setAmount(String nativeAmount) {
|
public void setAmount(String nativeAmount) {
|
||||||
if (nativeAmount != null) {
|
if (nativeAmount != null) {
|
||||||
etAmountA.setText(nativeAmount);
|
etAmountA.getEditText().setText(nativeAmount);
|
||||||
tvAmountB.setText(null);
|
tvAmountB.setText(null);
|
||||||
if (sCurrencyA.getSelectedItemPosition() != 0)
|
if (sCurrencyA.getSelectedItemPosition() != 0)
|
||||||
sCurrencyA.setSelection(0, true); // set native currency & trigger exchange
|
sCurrencyA.setSelection(0, true); // set native currency & trigger exchange
|
||||||
|
@ -116,12 +116,12 @@ public class ExchangeEditText extends LinearLayout {
|
||||||
public String getNativeAmount() {
|
public String getNativeAmount() {
|
||||||
if (isExchangeInProgress()) return null;
|
if (isExchangeInProgress()) return null;
|
||||||
if (getCurrencyA() == 0)
|
if (getCurrencyA() == 0)
|
||||||
return getCleanAmountString(etAmountA.getText().toString());
|
return getCleanAmountString(etAmountA.getEditText().getText().toString());
|
||||||
else
|
else
|
||||||
return getCleanAmountString(tvAmountB.getText().toString());
|
return getCleanAmountString(tvAmountB.getText().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
EditText etAmountA;
|
TextInputLayout etAmountA;
|
||||||
TextView tvAmountB;
|
TextView tvAmountB;
|
||||||
Spinner sCurrencyA;
|
Spinner sCurrencyA;
|
||||||
Spinner sCurrencyB;
|
Spinner sCurrencyB;
|
||||||
|
@ -188,7 +188,7 @@ public class ExchangeEditText extends LinearLayout {
|
||||||
protected void onFinishInflate() {
|
protected void onFinishInflate() {
|
||||||
super.onFinishInflate();
|
super.onFinishInflate();
|
||||||
etAmountA = findViewById(R.id.etAmountA);
|
etAmountA = findViewById(R.id.etAmountA);
|
||||||
etAmountA.addTextChangedListener(new TextWatcher() {
|
etAmountA.getEditText().addTextChangedListener(new TextWatcher() {
|
||||||
@Override
|
@Override
|
||||||
public void afterTextChanged(Editable s) {
|
public void afterTextChanged(Editable s) {
|
||||||
doExchange();
|
doExchange();
|
||||||
|
@ -223,7 +223,7 @@ public class ExchangeEditText extends LinearLayout {
|
||||||
|
|
||||||
// make progress circle gray
|
// make progress circle gray
|
||||||
pbExchange.getIndeterminateDrawable().
|
pbExchange.getIndeterminateDrawable().
|
||||||
setColorFilter(getResources().getColor(R.color.trafficGray),
|
setColorFilter(getResources().getColor(R.color.progress_circle),
|
||||||
android.graphics.PorterDuff.Mode.MULTIPLY);
|
android.graphics.PorterDuff.Mode.MULTIPLY);
|
||||||
|
|
||||||
sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@ -363,7 +363,7 @@ public class ExchangeEditText extends LinearLayout {
|
||||||
|
|
||||||
boolean prepareExchange() {
|
boolean prepareExchange() {
|
||||||
Timber.d("prepareExchange()");
|
Timber.d("prepareExchange()");
|
||||||
String enteredAmount = etAmountA.getText().toString();
|
String enteredAmount = etAmountA.getEditText().getText().toString();
|
||||||
if (!enteredAmount.isEmpty()) {
|
if (!enteredAmount.isEmpty()) {
|
||||||
String cleanAmount = getCleanAmountString(enteredAmount);
|
String cleanAmount = getCleanAmountString(enteredAmount);
|
||||||
Timber.d("cleanAmount = %s", cleanAmount);
|
Timber.d("cleanAmount = %s", cleanAmount);
|
||||||
|
|
|
@ -21,7 +21,6 @@ package com.m2049r.xmrwallet.widget;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.support.design.widget.TextInputLayout;
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
@ -37,11 +36,13 @@ import android.widget.ProgressBar;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
import com.m2049r.xmrwallet.model.Wallet;
|
import com.m2049r.xmrwallet.model.Wallet;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeApi;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback;
|
||||||
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate;
|
||||||
|
import com.m2049r.xmrwallet.util.ColorHelper;
|
||||||
import com.m2049r.xmrwallet.util.Helper;
|
import com.m2049r.xmrwallet.util.Helper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -178,10 +179,9 @@ public class ExchangeView extends LinearLayout {
|
||||||
|
|
||||||
// make progress circle gray
|
// make progress circle gray
|
||||||
pbExchange.getIndeterminateDrawable().
|
pbExchange.getIndeterminateDrawable().
|
||||||
setColorFilter(getResources().getColor(R.color.trafficGray),
|
setColorFilter(getResources().getColor(ColorHelper.getThemedResourceId(getContext(), R.attr.colorPrimaryVariant)),
|
||||||
android.graphics.PorterDuff.Mode.MULTIPLY);
|
android.graphics.PorterDuff.Mode.MULTIPLY);
|
||||||
|
|
||||||
|
|
||||||
sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
|
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
|
||||||
|
@ -203,12 +203,6 @@ public class ExchangeView extends LinearLayout {
|
||||||
if (position != 0) { // if not XMR, select XMR on other
|
if (position != 0) { // if not XMR, select XMR on other
|
||||||
sCurrencyA.setSelection(0, true);
|
sCurrencyA.setSelection(0, true);
|
||||||
}
|
}
|
||||||
parentView.post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
((TextView) parentView.getChildAt(0)).setTextColor(getResources().getColor(R.color.moneroGray));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
doExchange();
|
doExchange();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,15 +23,16 @@ import android.os.Build;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.google.android.material.appbar.MaterialToolbar;
|
||||||
import com.m2049r.xmrwallet.R;
|
import com.m2049r.xmrwallet.R;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class Toolbar extends android.support.v7.widget.Toolbar {
|
public class Toolbar extends MaterialToolbar {
|
||||||
public interface OnButtonListener {
|
public interface OnButtonListener {
|
||||||
void onButton(int type);
|
void onButton(int type);
|
||||||
}
|
}
|
||||||
|
@ -45,7 +46,7 @@ public class Toolbar extends android.support.v7.widget.Toolbar {
|
||||||
ImageView toolbarImage;
|
ImageView toolbarImage;
|
||||||
TextView toolbarTitle;
|
TextView toolbarTitle;
|
||||||
TextView toolbarSubtitle;
|
TextView toolbarSubtitle;
|
||||||
Button bCredits;
|
ImageButton bCredits;
|
||||||
|
|
||||||
public Toolbar(Context context) {
|
public Toolbar(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
@ -125,33 +126,27 @@ public class Toolbar extends android.support.v7.widget.Toolbar {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case BUTTON_BACK:
|
case BUTTON_BACK:
|
||||||
Timber.d("BUTTON_BACK");
|
Timber.d("BUTTON_BACK");
|
||||||
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_arrow_back_white_24dp, 0, 0, 0);
|
bCredits.setImageResource(R.drawable.ic_arrow_back_white_24dp);
|
||||||
bCredits.setText(null);
|
|
||||||
bCredits.setVisibility(View.VISIBLE);
|
bCredits.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case BUTTON_CLOSE:
|
case BUTTON_CLOSE:
|
||||||
Timber.d("BUTTON_CLOSE");
|
Timber.d("BUTTON_CLOSE");
|
||||||
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_close_white_24dp, 0, 0, 0);
|
bCredits.setImageResource(R.drawable.ic_close_white_24dp);
|
||||||
bCredits.setText(R.string.label_close);
|
|
||||||
bCredits.setVisibility(View.VISIBLE);
|
bCredits.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case BUTTON_CREDITS:
|
case BUTTON_CREDITS:
|
||||||
Timber.d("BUTTON_CREDITS");
|
Timber.d("BUTTON_CREDITS");
|
||||||
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_favorite_white_24dp, 0, 0, 0);
|
bCredits.setImageResource(R.drawable.ic_favorite_white_24dp);
|
||||||
bCredits.setText(R.string.label_credits);
|
|
||||||
bCredits.setVisibility(View.VISIBLE);
|
bCredits.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case BUTTON_CANCEL:
|
case BUTTON_CANCEL:
|
||||||
Timber.d("BUTTON_CANCEL");
|
Timber.d("BUTTON_CANCEL");
|
||||||
bCredits.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_close_white_24dp, 0, 0, 0);
|
bCredits.setImageResource(R.drawable.ic_close_white_24dp);
|
||||||
bCredits.setText(R.string.label_cancel);
|
|
||||||
bCredits.setVisibility(View.VISIBLE);
|
bCredits.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
case BUTTON_NONE:
|
case BUTTON_NONE:
|
||||||
default:
|
default:
|
||||||
Timber.d("BUTTON_NONE");
|
Timber.d("BUTTON_NONE");
|
||||||
bCredits.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
|
||||||
bCredits.setText(null);
|
|
||||||
bCredits.setVisibility(View.INVISIBLE);
|
bCredits.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
buttonType = type;
|
buttonType = type;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.xmrto.api;
|
package com.m2049r.xmrwallet.xmrto.api;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
public interface XmrToApi {
|
public interface XmrToApi {
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.xmrto.network;
|
package com.m2049r.xmrwallet.xmrto.network;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.xmrto.api.CreateOrder;
|
import com.m2049r.xmrwallet.xmrto.api.CreateOrder;
|
||||||
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
|
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.xmrto.network;
|
package com.m2049r.xmrwallet.xmrto.network;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
|
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
|
||||||
import com.m2049r.xmrwallet.xmrto.api.QueryOrderParameters;
|
import com.m2049r.xmrwallet.xmrto.api.QueryOrderParameters;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.xmrto.network;
|
package com.m2049r.xmrwallet.xmrto.network;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
|
import com.m2049r.xmrwallet.xmrto.api.XmrToCallback;
|
||||||
import com.m2049r.xmrwallet.xmrto.api.QueryOrderStatus;
|
import com.m2049r.xmrwallet.xmrto.api.QueryOrderStatus;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.xmrto.network;
|
package com.m2049r.xmrwallet.xmrto.network;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.m2049r.xmrwallet.xmrto.network;
|
package com.m2049r.xmrwallet.xmrto.network;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.m2049r.xmrwallet.util.OkHttpHelper;
|
import com.m2049r.xmrwallet.util.OkHttpHelper;
|
||||||
import com.m2049r.xmrwallet.xmrto.XmrToError;
|
import com.m2049r.xmrwallet.xmrto.XmrToError;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="?attr/colorSecondary" android:state_enabled="true"/>
|
||||||
|
<item android:color="?attr/colorOnBackground"/>
|
||||||
|
</selector>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,72 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="774dp"
|
||||||
|
android:height="774dp"
|
||||||
|
android:viewportWidth="774"
|
||||||
|
android:viewportHeight="774">
|
||||||
|
<path
|
||||||
|
android:pathData="M595.29,577.34c-9.38,-25.79 -17.49,-52 -27,-77.78 -9.19,-25 -19,-49.82 -27.29,-75.15 -8.62,-26.23 -17.93,-52.24 -27.3,-78.21 -8.09,-22.43 -18.19,-44.59 -33.22,-63.28a223,223 0,0 0,-48.06 -44.33c-34.44,-23.42 -79.24,-35.76 -120.51,-26.7 -20.09,4.41 -39.15,14.47 -53.06,29.76C243.68,258.34 232,279.29 223.34,300c-18.75,45 -21.34,94.88 -13.26,142.5 4.52,26.73 12,52.85 19.94,78.73 7.86,25.65 16.56,50.84 27.47,75.38 10.75,24.17 23.89,46.71 38,69s27.69,44.76 42,66.86Q343.64,742 350,751.4c2.58,-1.38 5.16,-2.81 7.73,-4.24 -11.52,-17.58 -22.59,-35.45 -33.46,-53.44 -13.27,-22 -27.42,-43.5 -39.94,-65.91 -25.39,-45.44 -41.14,-95.93 -54.26,-146.08 -12.66,-48.42 -18.28,-98.42 -5.85,-147.53a211.69,211.69 0,0 1,25.54 -59.8c11.24,-18.07 24.06,-34 43.55,-43.5 36.69,-17.83 82.18,-10 117,8.56 18.45,9.84 34.55,23.17 48.86,38.34 15.7,16.65 27.24,35.37 36,56.51 9.9,24 18.06,48.89 26.46,73.45 8.49,24.82 16.9,49.59 26.12,74.16 18.45,49.18 33.46,99.53 54.69,147.65 0.76,1.73 1.54,3.45 2.32,5.18a12.83,12.83 0,0 0,1.38 -0.11,39.15 39.15,0 0,0 9.41,-5.86c0.12,-0.18 0.22,-0.36 0.33,-0.55Q604.66,603.14 595.29,577.34Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M443,535.05c-9.66,-14.47 -21.79,-27.21 -31.84,-41.43 -10.47,-14.83 -20,-30.6 -26.62,-47.55 -7.14,-18.3 -9.86,-37.42 -11,-56.94 -0.78,-13.7 0,-28.5 -3.77,-41.85 -3,-10.56 -10.65,-19.25 -22.53,-17.91 -12.71,1.44 -20.3,14.87 -24.9,25.38 -6.76,15.46 -8.81,31.15 -7.33,47.95 1.65,18.69 6.22,36.94 12.29,54.66 3.42,10 7.2,19.82 11.25,29.55s8.53,19.33 11.74,29.37c3,9.45 4,18.9 4.94,28.71 0.75,7.39 2.78,17.49 -3,23.42 -0.47,0.49 0.17,1.42 0.76,1 9.13,-7 6.65,-22.64 6,-32.59 -1.15,-17.94 -7.66,-34.25 -14.15,-50.79 -6.71,-17.09 -13.51,-34.11 -18.15,-51.91 -4.73,-18.15 -8.42,-38 -5.61,-56.71 1.91,-12.71 7.55,-28.31 16.85,-37.53 4.52,-4.47 10.76,-6.77 16.94,-4.31 5.31,2.11 8,7.5 9.47,12.7 3.6,13 2.5,27.56 3.26,40.88 1,18.45 3.34,36.79 9.59,54.27 6.4,17.89 15.86,34.49 26.79,50 10.74,15.24 22.42,31.16 36.23,43.76C441.68,538.41 444.16,536.76 443,535.05Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M424.89,538.23c-10.41,-8.27 -19.14,-16.77 -25.73,-28.46 -3.49,-6.19 -6.3,-12.72 -9.62,-19 -3.5,-6.59 -7.23,-13 -10.51,-19.76 -7.34,-15 -10.51,-31.46 -12.52,-48a224.34,224.34 0,0 1,-1.86 -24.84c-0.09,-8.38 0.27,-16.77 -0.2,-25.15s-1.77,-23.83 -13.14,-24.78 -16.51,14.32 -18.67,22.85c-7.16,28.24 -0.62,60 9.17,86.81 5.92,16.24 14.6,31.24 19.91,47.73 5.49,17 9.18,35.23 9.74,53.16a0.63,0.63 0,0 0,0.7 0.55,0.64 0.64,0 0,0 0.55,-0.55 173.37,173.37 0,0 0,-18.64 -82.25c-13.07,-26.27 -21.37,-55.43 -19.77,-85a92.86,92.86 0,0 1,3.55 -22.09c1.66,-5.49 4.37,-13.78 10.31,-16.09 13.33,-5.19 11.89,25.67 11.87,31.86 -0.12,29.29 1.57,60.74 14.6,87.53 3.37,6.94 7.26,13.61 10.9,20.41 3.56,6.65 6.55,13.59 10.38,20.1 6.53,11.11 15.39,21.56 26.81,27.82C424.42,542 426.54,539.55 424.89,538.23Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M390.13,523.12c-3.83,-9.46 -8.8,-18.37 -13.47,-27.43 -5.16,-10 -9.92,-20.29 -14.33,-30.65a282.84,282.84 0,0 1,-11.21 -32.67c-3,-10.33 -6.19,-20.71 -7.34,-31.45 -1,-9.14 -1.76,-22.56 4.35,-30.32 1.48,-1.88 2.09,-1.78 3.15,0.45a19.83,19.83 0,0 1,1.51 8.47c0,6 -1.57,12.18 -2.9,18a0.74,0.74 0,1 0,1.43 0.39c3.34,-8.48 7,-18 4.06,-27.15 -1.35,-4.25 -4.78,-8 -9,-4.39 -5,4.23 -6.44,12.42 -7.15,18.49 -1.19,10.21 0.09,20.46 2.39,30.41A328.17,328.17 0,0 0,363 478.36c4.44,9.7 9.19,19.2 14.12,28.65 5.09,9.75 10.05,19.7 12.62,30.46 1.1,4.61 2,9.3 1.18,14 -0.23,1.39 -1.74,9.19 -3.69,9 -1.42,-0.14 -2.63,-4.83 -3,-5.87a45.5,45.5 0,0 1,-1.63 -9.26c-0.5,-5.42 0.09,-11 -1.19,-16.27a1.51,1.51 0,0 0,-2.9 0c-2,8.35 -1.16,19.22 1.39,27.42 1.27,4.11 4.85,11.69 10.26,7.92 4.29,-3 5.51,-10.34 5.87,-15.12C396.68,540.57 393.35,531.08 390.13,523.12Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M428.88,498.85c-8.56,-13.8 -18.39,-26.51 -25.68,-41.12 -7.37,-14.77 -13.18,-30.43 -14.77,-47 -2.64,-27.47 4.25,-59.19 -14.31,-82.6 -7.55,-9.52 -20.55,-12.09 -32,-9.49 -12.73,2.88 -22.95,12.59 -29.13,23.77 -7.28,13.2 -9.05,28 -10,42.77 -0.51,7.77 -3,15.42 -2.07,23.25a163.68,163.68 0,0 0,5.22 25.09c5.29,19 13.2,37.26 19.69,55.87 3.39,9.73 7.1,19.44 9.3,29.52s2.57,20.63 6.19,30.25c0.57,1.52 3,1.4 3,-0.4 -0.06,-16.17 -4,-32.89 -9.13,-48.13 -5.58,-16.43 -11.58,-32.68 -17.58,-49 -2.75,-7.46 -5.21,-15 -7.21,-22.72s-4.44,-16.4 -4.4,-24.49c0,-7.45 2,-15 2.57,-22.5a116.16,116.16 0,0 1,3.37 -22.48c3.62,-13.31 11.17,-26.14 23.67,-32.82 11.24,-6 27.13,-5.32 35.19,5.52 17,22.88 9.89,53.54 12.79,79.92 1.79,16.28 7.17,32.17 14.71,46.68s17.2,29.69 28.93,41.37a1.12,1.12 0,0 0,1.53 -0.36A1.1,1.1 0,0 0,428.88 498.85Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M304.52,455.92c-4,-13.63 -5.61,-27.79 -7.6,-41.8 -0.8,-5.64 -2.6,-10.21 -6.69,-14.22 -4.57,-4.49 -6.78,-8.4 -6.94,-15 -0.29,-11.85 3.53,-24.52 7.28,-35.66 3.65,-10.86 9.25,-20.56 15,-30.39a68.62,68.62 0,0 1,8.7 -12.47c2,-2.1 7.48,-7.17 10.78,-4.37 3.68,3.13 -5.42,14.12 -7.32,16.65 -6.39,8.54 -12.2,17 -16.23,27a122.57,122.57 0,0 0,-8.5 40.58c0,0.53 0.84,0.66 0.93,0.13 4.07,-13.45 6.37,-27.47 11.95,-40.44 4.16,-9.67 10.22,-17.67 16.45,-26 3.4,-4.56 9.9,-12.46 7.86,-18.7 -2.55,-7.86 -13.38,-4.05 -17.67,-0.35 -7.41,6.4 -11.85,16.09 -16.74,24.39 -6.95,11.78 -11.31,24.56 -14.59,37.78 -2.61,10.52 -6.21,24.92 0,34.85 1.42,2.25 3.41,3.91 5.28,5.76a16.57,16.57 0,0 1,4.83 9c1.45,7.07 1.92,14.48 3.11,21.62 1.51,9.06 3.14,18.21 6.15,26.91 2.62,7.56 6.24,14.71 9.52,22a117.26,117.26 0,0 1,8.12 25.46c1.71,8.58 2.48,17.39 5.43,25.66 0.71,2 4.09,1.85 3.91,-0.53a177.26,177.26 0,0 0,-7.48 -40C315.86,480.75 308.39,469.05 304.52,455.92Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M456,454.71c-2.94,-8.71 -7.81,-16.54 -12.33,-24.48 -4.68,-8.2 -8.39,-16.39 -9.9,-25.77 -1.29,-8 -2.41,-17.12 -7.44,-23.78 -2.87,-3.81 -7.42,-5.36 -10.45,-0.82 -2.83,4.26 -3.36,10.53 -3.49,15.51 -0.47,19.29 6.36,40.89 16.45,57.24 4.21,6.82 13.87,16.75 11,25.59 -1.69,5.15 -6.19,-0.55 -8.11,-2.77a80.81,80.81 0,0 1,-8.95 -13.12,131.51 131.51,0 0,1 -17.28,-57.64c-1.13,-20.62 0.5,-41.91 -7,-61.59 -3.71,-9.76 -9.35,-19.35 -16.93,-26.61A36.51,36.51 0,0 0,368.31 308c-5.38,-1.86 -11.12,-2.31 -16.53,-4 -3.93,-1.26 -7.26,-3 -9.16,-6.76 -1.59,-3.15 -2.35,-6.66 -3.9,-9.83 -3.42,-7 -11.64,-11.75 -18,-5.4a0.73,0.73 0,0 0,0.07 1,0.72 0.72,0 0,0 0.79,0.1c10.93,-5.53 13.8,7.83 16.67,15.06 2.23,5.59 6.68,8.48 12.23,10.4 9.67,3.35 18.87,3.74 26.66,11.24 7,6.74 12.22,15.79 15.69,24.82 7.26,18.92 5.75,39.41 6.78,59.26A135.67,135.67 0,0 0,413.3 456,105.58 105.58,0 0,0 427,478.25c3.28,3.95 9.21,10.49 14.75,6.33 4.75,-3.57 4.2,-11.35 2.41,-16.27 -3,-8.21 -9.23,-14.74 -13.18,-22.44 -8.17,-16 -15.13,-35.81 -13.15,-54a27.17,27.17 0,0 1,1.71 -7.76c1.58,-3.64 2.91,-0.19 4.3,2.58 3.89,7.76 3.87,16.75 5.93,25 4.64,18.6 19.34,32.81 23,51.77 1.55,8 2.7,16.6 0.79,24.59 -2.16,9.07 -8.58,14.89 -17.14,18.09 -3.19,1.2 -1.8,6.37 1.42,5.15 14.65,-5.55 22.1,-17.22 21.93,-32.78A78.83,78.83 0,0 0,456 454.71Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M358.69,290.32c-8.36,-2.65 -12.15,-13.7 -17.89,-19.65 -7.71,-8 -17.73,-8.7 -26.49,-1.91 -8.54,6.63 -13,16.76 -17.82,26.14 -5.72,11.18 -13.16,21.4 -18.62,32.71 -9.22,19.12 -19.23,42.13 -14.72,63.78 2.29,11 10.44,19 13.74,29.51 1.88,6 2,12.42 2.73,18.59a83.79,83.79 0,0 0,4.5 20.56c4.71,12.41 12.69,23.39 15.92,36.38 2.66,10.69 2.73,24.55 10.42,33.1 1.35,1.5 4.29,-0.07 3.51,-2 -3.69,-9.41 -5.75,-18.7 -7.84,-28.57 -2.25,-10.6 -6.94,-19.81 -11.81,-29.41a88.23,88.23 0,0 1,-7.08 -17.33c-1.68,-6.35 -2.22,-12.89 -2.94,-19.4 -0.59,-5.39 -1.1,-10.8 -3.12,-15.88a90.79,90.79 0,0 0,-6.7 -12.53A46.77,46.77 0,0 1,268 373.54c1.38,-11.38 5.44,-22.43 9.94,-32.91a242.7,242.7 0,0 1,15.73 -29.69c5.56,-9.21 9.72,-19.23 15.45,-28.31 3.57,-5.64 8.83,-12 15.73,-13.39 6.22,-1.23 11.42,3 15.15,7.46 4.43,5.32 10.37,15.89 18.49,15.18a0.79,0.79 0,0 0,0.75 -0.84A0.81,0.81 0,0 0,358.69 290.32Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M297.64,518.14c-1.25,-3.28 -3.41,-6 -5.06,-9.1a82.66,82.66 0,0 1,-5.07 -12c-2.64,-7.65 -4.6,-15.51 -6.9,-23.27 -2.54,-8.58 -5.19,-16.95 -6.54,-25.84 -1.56,-10.19 -2.56,-20.63 -3.59,-30.89 -0.1,-1 -1.58,-1 -1.54,0 0.49,10.22 0,20.4 0.94,30.63 0.9,9.7 3.36,18.77 5.82,28.15 2.17,8.29 4.12,16.63 7,24.71 2.43,6.77 5.46,15.89 11.63,20.1C295.9,521.73 298.34,520 297.64,518.14Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M418.65,363.31c-2.4,-17.5 -12.15,-32.56 -22.54,-46.41a94,94 0,0 0,-12.95 -14.73c-3.82,-3.36 -8.54,-7 -13.94,-6.35a1,1 0,0 0,0 2c5,0.1 9.65,6.09 12.69,9.55a168.24,168.24 0,0 1,10.74 14.05c9.07,12.88 18,26.75 20.09,42.7a3,3 0,0 0,6 -0.17A3.4,3.4 0,0 0,418.65 363.31Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M450.43,406.58c-0.43,-2.25 -0.27,-4.52 -0.8,-6.8s-1.16,-4.36 -1.77,-6.52c-1.07,-3.8 -2.19,-7.6 -3.31,-11.39 -2.08,-7.06 -4.25,-14.1 -6.42,-21.14 -4.05,-13.16 -8.5,-26.3 -15.42,-38.28A98.61,98.61 0,0 0,395 291.57c-10.94,-8 -23.55,-15.88 -36.27,-20.61 -0.82,-0.3 -1.32,0.82 -0.8,1.38 8.88,9.65 21.8,15.38 32.32,23a96.75,96.75 0,0 1,28.2 32.11c6.51,11.89 10.57,24.84 14.47,37.76 2.17,7.19 4.37,14.38 6.45,21.6 1,3.53 2,7.06 3.1,10.56 1.22,3.86 3,7 4.67,10.59C448,410 450.8,408.47 450.43,406.58Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M472.66,471a90.48,90.48 0,0 0,-7 -25.72c-4.18,-9.37 -12,-16.84 -15.55,-26.39 -0.65,-1.75 -3.41,-1.07 -2.84,0.78 2.47,8.06 7.46,14.85 11.17,22.33a88.59,88.59 0,0 1,8.42 27.66c1.31,9.52 2,19.71 -1.38,28.9 -2.76,7.56 -8.83,13.82 -10.8,21.66 -0.72,2.88 3.46,4.86 4.93,2.08 3.81,-7.3 8.57,-14.57 11.39,-22.3C474.27,490.77 473.88,480.54 472.66,471Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M485.07,449c-2.52,-9.83 -6.61,-19.17 -10.83,-28.37 -4.51,-9.83 -8.84,-19.39 -11.55,-29.9s-4.46,-21.1 -7.25,-31.51a154.26,154.26 0,0 0,-32.81 -60.72c-0.49,-0.56 -1.26,0.15 -1,0.76 8.67,18.1 19.83,34.7 25.87,54.05 5.75,18.44 7.2,38.1 14.68,56S479.37,444.2 481,463.84s-0.83,42 -9,60.05a56.57,56.57 0,0 1,-18.64 22.38c-8.39,6 -17.37,8.49 -27.52,9.23a2.61,2.61 0,0 0,0 5.22c17,1.95 34.26,-9.83 44.19,-22.72 12.36,-16 16.34,-37.87 17.45,-57.64C488,469.75 487.72,459.37 485.07,449Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M287.29,290.18c-14.1,18.4 -27.62,39.15 -33.45,61.82a99,99 0,0 0,-3.11 30.18,87.8 87.8,0 0,0 1.57,13.13c0.68,3.29 1.62,8.2 5.07,9.69a1.79,1.79 0,0 0,2.65 -1.52c0.06,-3.57 -2,-7.31 -2.67,-10.83A87.1,87.1 0,0 1,256 379.86a94.94,94.94 0,0 1,3.84 -30.11c3.06,-10.77 8.13,-20.53 13.55,-30.27 5.29,-9.48 11.27,-18.59 14.54,-29C288.1,290 287.52,289.88 287.29,290.18Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M329.32,552.91c-4.84,-5.82 -12.83,-9.57 -19.07,-13.77a149.86,149.86 0,0 1,-20.07 -15.49c-12.5,-11.93 -18.12,-27.46 -22.31,-43.84a137,137 0,0 1,-4.5 -25.25c-0.52,-8 -0.67,-16 -2,-23.87 -1.43,-8.27 -4.83,-15.31 -9.1,-22.45 -5,-8.37 -8.78,-16.57 -9.48,-26.43 -0.73,-10.29 1,-20.58 3.7,-30.48 2.49,-9.23 6.24,-18.44 7,-28 0.08,-1.09 -1.45,-1.14 -1.79,-0.24 -6.25,16.78 -12.8,34.94 -13.56,53a56.52,56.52 0,0 0,4.75 26c3.75,8.22 9.25,15.45 11.58,24.3s2.41,17.75 2.92,26.69a138.92,138.92 0,0 0,4 25.48c4,16.28 9,32.54 20.39,45.3 6.12,6.85 13.5,12.54 21,17.73 4.11,2.84 8.31,5.54 12.5,8.27 3.86,2.52 7.48,5.33 11.82,7C329.45,557.63 330.63,554.48 329.32,552.91Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M411.88,559.77c-15.54,11 -36.18,15.5 -54.94,14.09a87.83,87.83 0,0 1,-27.51 -6.39c-5,-2.08 -10.48,-4.15 -14.66,-7.63 -3.32,-2.76 -6.1,-7.44 -10.62,-8.18a3,3 0,0 0,-2.9 5c7.2,8.29 16.48,13.45 26.53,17.56a88.14,88.14 0,0 0,29.83 6.51,83.69 83.69,0 0,0 29.76,-4.08 64.81,64.81 0,0 0,13.78 -6.38c4.47,-2.78 7.74,-6 11.42,-9.59C413,560.22 412.42,559.39 411.88,559.77Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M496.72,499.41a0.8,0.8 0,0 0,-1.59 0c-3.11,24.18 -18.63,45.85 -38.68,59.11a93.78,93.78 0,0 1,-16.17 8.66c-4.31,1.78 -8.74,3.12 -13,5.12s-8.34,4.25 -12.7,5.94c-3.69,1.43 -7.37,1.24 -11,2.35a2.71,2.71 0,0 0,-1.6 3.92c5.15,7.54 19.79,-1.44 25.45,-4.39 11,-5.72 22.51,-9.51 32.71,-16.79C479.64,549.4 498.82,524.68 496.72,499.41Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M401.35,275c-6.83,-4.7 -12.3,-11 -19,-15.85 -6.3,-4.58 -13.68,-7.58 -21.05,-10 -13.5,-4.38 -27,-6.56 -41.14,-4.4 -13.15,2 -26.08,7.63 -35.49,17.19 -5.37,5.45 -10.05,11.92 -14.49,18.13a71.91,71.91 0,0 0,-10.86 21.24c-0.6,2 2.43,3.32 3.37,1.43a120.45,120.45 0,0 1,13.09 -20.31c4.25,-5.42 8.43,-11.19 13.28,-16.1 8.9,-9 21.21,-14 33.64,-15.64 13.2,-1.73 25.94,0.71 38.48,4.79 6.92,2.25 13.76,4.86 19.87,8.88 6.39,4.2 12,9.49 19,12.75a1.25,1.25 0,0 0,1.3 -2.11Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M755.43,276.23c-33.74,10.51 -64.13,30.28 -98.23,39.52 -1.75,-17.53 2.86,-35.32 -1.9,-52.63a3.71,3.71 0,0 0,-3.52 -2.68c-18.33,1.44 -34.28,12.95 -50.1,21.25 -16.49,8.65 -35.43,12.15 -51.36,21.89 0.13,1.31 0.24,2.62 0.34,3.92q0.29,1.67 0.54,3.33h0c1.78,11.59 2.59,23.36 3.4,35.12h0c0.35,5.06 0.71,10.12 1.14,15.16a4.67,4.67 0,0 0,3.85 -0.2c21.28,-10 39.42,-25.08 59,-37.79 1.61,5.35 1.8,11.09 2.22,16.66 0.55,7.19 1.55,14.06 4.43,20.72 1,2.21 4.53,3 6.43,1.69A415.86,415.86 0,0 1,668 340.27q5.64,-4.39 11.4,-8.63 6.54,-4.8 13.23,-9.43l0.59,-0.41q6.67,-4.6 13.46,-9.05l0.76,-0.5q6.67,-4.37 13.46,-8.59l1,-0.65q2.07,-1.29 4.16,-2.56l5.33,-3.26 2.37,-1.44q3.6,-2.17 7.22,-4.33h0l1.69,-1q7.79,-5.87 15.64,-11.59a2.39,2.39 0,0 0,-2.11 -2.64A2.48,2.48 0,0 0,755.43 276.23ZM630.6,345.1q-0.14,-0.89 -0.24,-1.77a5.29,5.29 0,0 0,0.58 0.58C630.83,344.31 630.71,344.71 630.6,345.1ZM555.6,310.4a2.47,2.47 0,0 0,-0.36 -0.11l0.46,-0.27a1.8,1.8 0,0 1,-0.07 0.38ZM564.23,347.26a6.41,6.41 0,0 0,1.31 0.14l0.16,0.22 -2.61,1.51a4,4 0,0 0,1.17 -1.87ZM651.13,317.96v0.23h-0.07ZM636,293.1l0.32,-0.61 0.22,-0.21q-0.27,1.47 -0.57,2.94a4.09,4.09 0,0 0,-0.15 -0.85A4.53,4.53 0,0 0,636 293.1ZM560.67,350.1a4.85,4.85 0,0 0,1 -0.16l-1,0.54a0.74,0.74 0,0 0,0 -0.39ZM631.59,350.23a3.89,3.89 0,0 0,0.53 0.46l-0.37,0.24c-0.06,-0.24 -0.11,-0.48 -0.16,-0.71Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M194,538.15c-0.5,-1.21 -1,-2.44 -1.46,-3.66l-0.36,-0.91c-1.18,-3 -2.31,-6.06 -3.45,-9.07q-0.85,-2.24 -1.72,-4.46c-1.65,-4.19 -3.32,-8.37 -5,-12.52l-4.28,-8.61a4.66,4.66 0,0 0,-0.47 0.3c-29.93,22.34 -64.79,37.16 -93.61,61.1a3.42,3.42 0,0 0,-0.53 4.11c2.13,3.27 4.13,6.67 6.11,10.09A5,5 0,0 0,90 577.6a125.13,125.13 0,0 0,6.75 10.71A162.66,162.66 0,0 0,108 604.15v0.19a14.34,14.34 0,0 1,-3.19 6.31c-3.35,4.32 -7.41,8.07 -10.94,12.25 -6.48,7.7 -13.12,15.3 -19.63,23l-1.86,1.6c-7.6,6.7 -14.83,13.8 -22,20.94L46,674.12c-5.86,7.59 -11.7,15.31 -18,22.6 -2.57,3 -5.2,5.88 -7.95,8.68a3.08,3.08 0,0 0,0.46 2.25c1.8,-1.16 3.59,-2.34 5.38,-3.52h0l0.79,-0.52 3.52,-2.36L33.48,699q1.94,-1.32 3.86,-2.65l2.89,-2 1.17,-0.81h0c0.63,-0.43 1.25,-0.88 1.87,-1.32l1.61,-1.12 2,-1.43L50,687.54l2.59,-1.85L61,679.62l1.18,-0.86 9.62,-7 9,-6.51 14.42,-12.11c20,-16.74 40.14,-33.3 61.06,-48.89l1.51,-1.13a4.35,4.35 0,0 0,0 -2.15c-1.73,-6.42 -6.45,-11.27 -11.14,-15.73 -3.83,-3.64 -8.7,-7.39 -11.16,-12.27 16.89,-8.25 34.85,-15 49.77,-26.64 2.76,-2.15 6,-4.73 8.16,-7.77A1.46,1.46 0,0 0,194 538.15ZM124.15,600.57 L125.15,601.64 124.74,601.98 123.85,600.49ZM148.27,599.31 L147.83,599.46c-0.72,-1.17 -1.38,-2.39 -2,-3.58a23.06,23.06 0,0 1,2.46 3.43Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M228.62,219.16c-7.78,-6.19 -16.62,-10.91 -25.44,-15.45 -3,-1.53 -6.11,-2.74 -9,-4.44 -1.64,-1 -2.41,-2.34 -3.87,-3.46 1.65,-2.75 2.06,-6.62 3.3,-9.5a85.24,85.24 0,0 1,7.34 -13c5.1,-7.79 10.86,-15.13 15.76,-23 2.17,-3.52 3.93,-7.23 5.92,-10.85 1.26,-2.28 2.93,-4.69 3,-7.4a6.85,6.85 0,0 0,-0.8 -3.38l-7.2,-2.26L213.49,125c-24.37,-7.76 -48.58,-16 -72.4,-25.36 -4.14,-1.62 -8.25,-3.35 -12.36,-5.1h0c-9.74,-4.16 -19.44,-8.46 -29.45,-11.83C95.22,81.35 91.07,80 87,78.6v0.21c6.06,4.7 12,9.52 17.94,14.4l1.81,1.48q9.38,7.77 18.59,15.72l4,3.47c7.45,6.53 14.81,13.2 22.56,19.34 3.36,2.68 6.73,5.35 10.16,7.94 1.4,1.06 2.8,2.13 4.25,3.12 0.48,0.33 2.54,1.39 1.88,1.24a2.88,2.88 0,0 1,2.39 2.71c2.19,1.26 4.37,2.53 6.53,3.83q-11.21,14.41 -22.23,29 -5.88,9.8 -12.36,19.2l-1.4,2c-1.24,1.76 -2.49,3.52 -3.76,5.26 -0.7,0.94 -1.37,1.9 -2.08,2.84a2.61,2.61 0,0 1,-0.52 0.53q13.91,14.28 28.3,28c8.76,8.35 21,15.72 27.34,26.44a13.59,13.59 0,0 0,1 2.28c0.39,-0.49 0.77,-1 1.16,-1.49h0c0.1,-0.13 0.2,-0.27 0.31,-0.4l3.92,-5.11h0l3.81,-5A447.69,447.69 0,0 1,228.62 219.16ZM189.93,195.4a8,8 0,0 0,-0.82 -0.93C190.07,194.08 190.12,194.67 189.93,195.4ZM197.2,248.22 L197.72,247.63L196.8,249c0.14,-0.25 0.27,-0.52 0.4,-0.78ZM217.71,224.52a5.67,5.67 0,0 0,0.18 -1,2.7 2.7,0 0,0 0.94,-1.38l0.7,0.48c-0.6,0.65 -1.21,1.27 -1.82,1.9ZM135.59,118.09c1.51,1 3,1.87 4.57,2.78 0.75,0.55 1.48,1.11 2.22,1.66h0C140.1,121.07 137.84,119.6 135.59,118.09ZM192.36,254.74a17.92,17.92 0,0 0,2.82 -3.08c-0.75,1.28 -1.47,2.57 -2.12,3.88Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M486.2,151.26l1.2,-2.51c1.4,-2.9 2.8,-5.78 4.23,-8.66 0.45,-0.91 0.89,-1.82 1.34,-2.72q2.41,-4.83 4.89,-9.63 3.45,-6.7 7,-13.37a10.53,10.53 0,0 0,-1.3 -1.67c-7.51,-7.89 -20,-7.87 -30.48,-9.32 6,-14.72 14.94,-28.63 22.68,-42.36 7,-12.42 16.86,-25.44 17.35,-40.25a3.78,3.78 0,0 0,-3 -3.86c-1.55,1.39 -3.11,2.76 -4.67,4.09l-1.16,1a600.63,600.63 0,0 1,-54 52.55c-6.15,5.93 -12.51,11.64 -19.22,17 -2,2 -4,4 -5.95,6a3.9,3.9 0,0 0,1.1 3.69c5.58,5.72 12.88,8.42 19.29,12.94 2.46,1.73 6.23,4.63 6.41,7.92 0.15,2.67 -2,5.57 -3.13,7.82 -4.23,8.14 -7.69,16.7 -11.68,25 -4.44,9.18 -9.71,18.12 -13.74,27.48a2.69,2.69 0,0 0,-1.87 2c4.39,2.54 8.74,5.18 13.06,7.85h0q5.25,3.25 10.47,6.54l2.5,1.57q5.34,3 10.57,6.23a3.2,3.2 0,0 0,1 -0.34c3.33,-6.95 6.91,-13.81 10.56,-20.63q2.78,-5.18 5.56,-10.31 2.43,-5.55 5,-11.06c0.37,-0.83 0.75,-1.66 1.13,-2.49Q483.7,156.5 486.2,151.26Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
</vector>
|
|
@ -0,0 +1,231 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="774dp"
|
||||||
|
android:height="774dp"
|
||||||
|
android:viewportWidth="774"
|
||||||
|
android:viewportHeight="774">
|
||||||
|
<path
|
||||||
|
android:pathData="M456.65,484.7c-0.75,-7.69 -4.75,-14.85 -12.11,-16.94a16.79,16.79 0,0 0,-13.36 1.75c-6.83,3 -11.81,10.07 -12.85,17.53a11.39,11.39 0,0 0,-0.56 2.51c-0.38,5 1.21,8.58 3.87,11 6.36,8.2 19.95,10.58 28.21,3.75a16.77,16.77 0,0 0,3.95 -4.87,7.65 7.65,0 0,0 2.28,-5.88 27.1,27.1 0,0 0,0.68 -5A17.11,17.11 0,0 0,456.65 484.7ZM433.83,490.44a7.15,7.15 0,0 1,-0.62 1.61,4.92 4.92,0 0,1 -0.28,0.45l-0.1,0.11a3.27,3.27 0,0 1,-0.24 0.27l-0.12,0.1a1.93,1.93 0,0 1,-0.27 0.3l-0.11,0.08a2.58,2.58 0,0 1,-0.32 0.18l-0.1,0 -0.37,0.14h-0.07a3.34,3.34 0,0 1,-0.43 0.1,3.91 3.91,0 0,1 -0.48,0.05h-0.55a3.77,3.77 0,0 1,-2.6 -1.29,3.39 3.39,0 0,1 -0.34,-0.5c-0.1,-0.18 -0.22,-0.35 -0.33,-0.53a3.72,3.72 0,0 1,-0.92 -2.42,5.27 5.27,0 0,1 0.7,-2.31c0.07,-0.18 0.15,-0.35 0.23,-0.52l0.16,-0.29 0.12,-0.18a1.55,1.55 0,0 1,0.24 -0.33l0.08,-0.09a3.22,3.22 0,0 1,0.32 -0.32,2.39 2.39,0 0,1 0.45,-0.31 4.32,4.32 0,0 1,1.8 -0.49,2.81 2.81,0 0,1 0.58,0 3.38,3.38 0,0 1,1.42 0.6l0.07,0.05a4.88,4.88 0,0 1,0.53 0.49l0.07,0.08a6.61,6.61 0,0 1,0.44 0.6,3.26 3.26,0 0,1 0.72,0.85c0.12,0.29 0.25,0.58 0.37,0.88A6,6 0,0 1,433.83 490.44ZM450.11,487.35v0.32a3.23,3.23 0,0 1,-0.12 1.16,2.67 2.67,0 0,1 0,0.4 2.78,2.78 0,0 1,-0.11 0.5c0,0.13 -0.08,0.25 -0.13,0.37v0.09a3.46,3.46 0,0 1,-0.52 0.82l-0.15,0.18a10.62,10.62 0,0 1,-3.17 1.73h-0.53l0.08,0a3.05,3.05 0,0 1,-0.54 -0.08,3.44 3.44,0 0,1 -2.38,-2.37 1.59,1.59 0,0 1,-0.21 -0.41l-0.06,-0.18a1.42,1.42 0,0 1,0 -0.22,2 2,0 0,1 -0.06,-0.6 1.89,1.89 0,0 1,0.13 -0.66,15.51 15.51,0 0,1 0.76,-2.27 1.81,1.81 0,0 1,0.33 -0.5,3.25 3.25,0 0,1 0.92,-1 3.4,3.4 0,0 1,2 -0.64,3.22 3.22,0 0,1 0.81,0.11 4.56,4.56 0,0 1,1.77 1.05l0.12,0.11a3.5,3.5 0,0 1,0.38 0.39,4 4,0 0,1 0.37,0.54s0.05,0.09 0.07,0.13a3.13,3.13 0,0 1,0.24 0.6c0,0.06 0,0.12 0.05,0.18Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M141.13,722.25c-0.08,-0.13 -0.15,-0.26 -0.22,-0.4v0.1a3.75,3.75 0,0 0,-1.28 -1.4,3.22 3.22,0 0,0 -3,-0.17 3.36,3.36 0,0 0,-1.8 4.4c0.06,0.13 0.12,0.25 0.19,0.37a6.2,6.2 0,0 0,0.87 1.1,3.31 3.31,0 0,0 5.19,-4Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M136.77,733.31a3.43,3.43 0,0 0,-1.69 -0.71,3.36 3.36,0 0,0 -2.28,0.43 4.29,4.29 0,0 0,-1.21 1.19,3.61 3.61,0 0,0 0.48,4.43 3.75,3.75 0,0 0,3.49 0.92,3.69 3.69,0 0,0 2.5,-2.5A3.62,3.62 0,0 0,136.77 733.31Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M362.14,573.91a3.57,3.57 0,0 0,-4.19 0.41c-2.48,2.28 -4.86,4.67 -7.18,7.11h0a23.81,23.81 0,0 0,-9.18 -6.35c0.22,-0.21 0.43,-0.41 0.67,-0.61 1.22,-1 2.37,-1.92 3.51,-2.92 2.3,-2 -0.79,-6.11 -3.26,-4.26s-6,3.65 -7.64,6.43a20.15,20.15 0,0 0,-8.75 1.71c-5.21,2.29 -9.52,6.24 -14.26,9.32 -4.15,2.7 -8.42,5.25 -12.13,8.56 -0.39,0.35 -0.77,0.71 -1.15,1.08 -5.1,3.69 -8.68,8.66 -8.55,15.63a15.45,15.45 0,0 0,5.25 11.92c-2.35,3.26 -4.78,6.47 -7.33,9.59A163.57,163.57 0,0 1,272.46 648c-4.5,4.15 -9.37,8 -15,10.52 -6.72,3 -14,3 -21.18,2.76 -15.1,-0.54 -29.8,-2.11 -44.69,1.45a77.27,77.27 0,0 0,-31 15.15c-9.85,8 -18.56,19.82 -21.74,32.25a4.41,4.41 0,0 0,3 5.31l0.26,0.09a3.67,3.67 0,0 0,3.71 -1c2,-1.85 2.81,-5.1 4,-7.44a72.26,72.26 0,0 1,4.53 -7.68,65.58 65.58,0 0,1 11,-12.58c8.47,-7.42 19,-12 30,-14.38 15.37,-3.29 30.59,-0.5 46.09,-0.49 14.7,0 26.45,-5.5 37.27,-15.22A157.6,157.6 0,0 0,296 638.55a106,106 0,0 0,7.14 -9.34,26.63 26.63,0 0,0 8,-0.72 27.81,27.81 0,0 0,7.53 -2.29c5.91,-1.33 11,-4.23 16.16,-7.56a71.75,71.75 0,0 0,17.85 -16.29,14.23 14.23,0 0,0 2,-14.76c3.22,-1.71 5.93,-5.16 8,-8.05l0.56,-0.52a3.07,3.07 0,0 0,0.05 -4.35A3.12,3.12 0,0 0,362.14 573.91ZM323.24,613.07a11.86,11.86 0,0 1,-2.17 3.37c-2.6,3 -6.37,4.44 -10.13,5.27a23.83,23.83 0,0 1,-4.58 0.36,14.61 14.61,0 0,0 0.38,-2.26 31.06,31.06 0,0 1,2.9 -3.28,2.62 2.62,0 0,0 0.58,-3.1A2.49,2.49 0,0 0,310 612a1.78,1.78 0,0 0,-3.09 -1.5,2.64 2.64,0 0,0 -1.26,0.68 43.64,43.64 0,0 0,-4 4.38c-0.32,0.17 -0.61,0.35 -0.9,0.54a9.81,9.81 0,0 1,-2.05 -4.76,11.88 11.88,0 0,1 2.27,-7.79c3.32,-5 10.14,-8.81 16,-6.2A12,12 0,0 1,323.24 613.07ZM345.77,600.72c-3.35,5.18 -8.94,9.31 -13.95,12.75 -0.78,0.57 -1.58,1.1 -2.39,1.63a17.53,17.53 0,0 0,-0.54 -14.08c-3.83,-7.52 -11.46,-9.91 -18.57,-8.46a67.16,67.16 0,0 0,7.3 -5.73c1.28,-1.19 2.48,-2.37 3.68,-3.52l0.75,-0.51c3.45,-2.38 7.08,-4.87 11.45,-3.95 4.12,0.87 7.89,3.93 10.7,6.94C348.32,590.21 349.17,595.47 345.77,600.72Z"
|
||||||
|
android:fillColor="#ff1a80"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M545.77,296.5c-0.37,-5.69 -0.51,-11.39 -0.56,-17.08l-0.09,-1.2c-0.61,-8.89 -0.17,-17.78 0.16,-26.67v-14c0,-10.07 1.14,-20.37 1.08,-30.55v-0.43c-0.13,-0.45 -0.23,-0.91 -0.34,-1.36l-0.18,-0.82c-0.06,-0.28 -0.11,-0.57 -0.16,-0.85s-0.11,-0.61 -0.15,-0.91l-0.09,-0.62c-0.12,-0.91 -0.21,-1.82 -0.27,-2.74h0c-1.34,0 -2.68,0 -4,0.09h0c-17.55,0.46 -35.09,1.86 -52.64,2.38l-2.5,0.06c-2.42,0.06 -4.85,0.11 -7.28,0.12h0c-2.54,2 -5.11,3.89 -7.76,5.72l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5v3.89l-0.06,1.3c-0.32,6.84 -1.12,13.66 -1.92,20.48 -1.23,10.65 -1.91,21.32 -2.46,32 -0.57,11.16 -0.89,22.25 -0.65,33.43 0,2 0.11,4.06 0.16,6.13 0.1,0.37 0.21,0.74 0.32,1.11l-0.29,0.1c0,1.18 0.06,2.37 0.07,3.55 13.74,-1.47 27.56,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.63,-0.07 3.25,-0.17 4.88,-0.26h0l2.63,-0.14h0.58l0.33,0.06 0.26,0.05h0.12c0.57,-0.42 1.15,-0.82 1.72,-1.23s1.34,-0.94 2,-1.39 1.53,-1 2.31,-1.56 1.55,-1 2.33,-1.5 1.62,-1 2.43,-1.54c8.41,-5.22 17.13,-9.94 25.73,-14.87h0l1,-0.6c1.14,-0.66 2.29,-1.32 3.42,-2l0.07,-0.07c1,-0.61 2.09,-1.21 3.13,-1.84C546,300.46 545.9,298.49 545.77,296.5ZM484.61,206.88c10.81,-0.46 21.68,-0.73 32.49,-0.93q6.6,-0.12 13.25,-0.17c-2.92,1.91 -5.75,4 -8.46,6.14a136.35,136.35 0,0 0,-13.71 12.15c-0.11,-0.18 -0.2,-0.36 -0.31,-0.53a7.48,7.48 0,0 1,-1.88 0.65,2 2,0 0,1 -0.62,0.47 1.35,1.35 0,0 1,-0.32 0.11h-0.16a1.82,1.82 0,0 1,-0.57 0l-0.49,0.06a4.73,4.73 0,0 1,-0.75 0L503,224.83a1.14,1.14 0,0 1,-0.32 -0.07h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.5,0.65a76.66,76.66 0,0 0,-10.13 1.41c4.34,-3.15 9.14,-5.89 13.09,-9.11C473.65,213.81 478.69,209.88 484.61,206.88ZM477,323.23c-3.4,0.68 -6.77,1.49 -10.16,2.24 -4.15,0.64 -8.33,1.41 -12.51,1.69q-1,0.06 -1.95,0.06c0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.21,-8.15 0.78,-16.25 1.57,-24.35 0.24,-2.39 1.28,-8.81 -0.61,-11.81 7.24,-1.08 14.88,0.2 22.13,-0.43 5.56,-0.48 11.11,-1.5 16.6,-2.47 3.93,-0.7 8.23,-0.87 12.27,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.44 0,6.91 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.55l-2.31,0.27c-7.61,-1.85 -16.6,-0.07 -23.87,1.32ZM529.33,305.69c-4.5,2.83 -9,5.59 -13.5,8.5L513,316c0,-2 -0.09,-4 -0.15,-5.93 -0.29,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08A111.89,111.89 0,0 0,511 234c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.8,-0.06a2.5,2.5 0,0 1,-0.26 -1.35,2.36 2.36,0 0,1 0.08,-0.45v-0.08a1.4,1.4 0,0 1,0.16 -0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32,0.31 0.31,0 0,1 0.09,-0.11 3.09,3.09 0,0 1,0.43 -0.37c1.2,-0.82 2.38,-1.67 3.56,-2.52l1.36,-1c2.23,-1.64 4.43,-3.31 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a103,103 0,0 1,9.13 -6.19c2,-1.17 4.13,-1.95 5.9,-3.27 0,1.91 0.1,3.8 0.12,5.66 0.08,12.9 -2.53,25.74 -2.9,38.64 -0.39,13.56 -0.82,27.26 0,40.82 0.1,1.73 0.2,3.46 0.29,5.19 -3.07,1.82 -6,4.45 -8.83,6.21Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M487.27,288.76a1.67,1.67 0,0 1,-2 -1.21,2.2 2.2,0 0,1 0,-0.36c0,-5.24 0.63,-10.57 0.32,-15.82 -2.16,4.18 -3.78,8.64 -6.5,12.53a1.5,1.5 0,0 1,-2 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.63,-8.87 -6.78,-12.21 -0.18,5.29 -0.64,10.55 -0.75,15.84a1.29,1.29 0,0 1,-0.94 1.23,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.39 20.83,14.09 30,6.54a17.77,17.77 0,0 0,4.74 -6.38A55.13,55.13 0,0 0,487.27 288.76Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M483.83,258.48a16.77,16.77 0,0 0,-13.37 1.75c-9.09,4 -14.92,15.25 -12.48,25 0.12,0.48 0.27,0.94 0.42,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.48,-11.82 0.52,-17.73a1.43,1.43 0,0 1,1.45 -1.42,1.46 1.46,0 0,1 0.7,0.18c4.58,2.95 6.41,8.1 8.78,12.77 2.68,-4.65 4.33,-9.84 7.33,-14.32 0.67,-1 2.53,-1 2.79,0.37 1.21,6.36 0.69,12.73 0.53,19.14 2.2,-0.12 4.4,0 6.61,-0.12C498,274.88 494.36,261.47 483.83,258.48Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M507.09,416.58v-0.43a35.23,35.23 0,0 1,-1.2 -7.29l-4,0.08a0.11,0.11 0,0 0,0 0.05c-17,0.44 -34,1.77 -51,2.32h0c-1.54,0.06 -3.08,0.1 -4.61,0.14 -2.27,0.05 -4.54,0.1 -6.82,0.11h-0.06q-1.91,1.5 -3.84,2.92t-3.92,2.79l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5 0,0.81 0,1.63 0,2.44 0,0.39 0,0.79 0,1.18l-0.09,2.18c-0.35,6.64 -1.13,13.26 -1.89,19.87 -1.24,10.66 -1.92,21.32 -2.47,32 -0.57,11.17 -0.88,22.25 -0.65,33.43 0,2 0.11,4.06 0.17,6.13 0.09,0.38 0.2,0.76 0.32,1.14l-0.29,0.09c0,1.17 0.05,2.36 0.07,3.54 1.29,-0.14 2.58,-0.25 3.87,-0.37l1.12,-0.1c1.21,-0.11 2.41,-0.2 3.61,-0.29l0.89,-0.07c10.6,-0.76 21.24,-1 31.87,-1.33a100.51,100.51 0,0 1,10.27 -0.38c2.49,-0.1 5,-0.24 7.46,-0.4h0a3.32,3.32 0,0 1,0.63 0l0.27,0a2.7,2.7 0,0 1,0.39 0.08l1.95,-1.39 0.67,-0.46h0q4.26,-2.94 8.67,-5.65v0c8.26,-5.1 16.81,-9.74 25.24,-14.58v0l2.42,-1.43c0.67,-0.39 1.35,-0.77 2,-1.17l0,0c1.05,-0.62 2.12,-1.23 3.17,-1.87 -0.08,-2 -0.19,-3.95 -0.32,-5.93 -0.37,-5.7 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.1,-1.2 -0.61,-8.89 -0.16,-17.78 0.17,-26.67 -0.06,-4.66 0,-9.32 0,-14C506,437.06 507.15,426.76 507.09,416.58ZM464.89,445.25C464.4,462 463,479 463.5,495.81c0.19,6.87 0.89,13.71 1,20.57 0.08,3.45 0.05,6.91 -0.15,10.35 -0.08,1.45 -0.32,3 -0.46,4.53l-2.3,0.28c-7.64,-1.86 -16.61,-0.12 -23.87,1.31 -3.4,0.68 -6.77,1.49 -10.15,2.24 -4.16,0.64 -8.34,1.42 -12.53,1.69 -0.65,0.05 -1.29,0.05 -1.94,0.05 0.74,-7.16 -0.92,-14.55 -0.75,-21.69q0.34,-15.08 0.75,-30.15c0.2,-8.14 0.77,-16.25 1.56,-24.35 0.23,-2.41 1.29,-8.91 -0.66,-11.87 7.24,-1.09 14.89,0.19 22.15,-0.44 5.56,-0.48 11.11,-1.5 16.6,-2.47 4,-0.71 8.3,-0.87 12.33,-1.65A3.63,3.63 0,0 0,464.89 445.25ZM468.64,433.16a7.56,7.56 0,0 1,-1.89 0.65,1.82 1.82,0 0,1 -0.59,0.45h0a2.08,2.08 0,0 1,-1.12 0.21l-0.12,0c-0.32,0 -0.64,0.07 -1,0.08h-0.26l-0.33,-0.07h-0.09c-6.19,0.29 -12.4,0.21 -18.6,0.24s-12.36,0.07 -18.51,0.65a75.85,75.85 0,0 0,-10.24 1.44c4.37,-3.18 9.22,-5.93 13.2,-9.18 5.23,-4.27 10.27,-8.19 16.18,-11.15 10.82,-0.47 21.69,-0.73 32.51,-0.94 4.42,-0.08 8.84,-0.12 13.26,-0.16a98,98 0,0 0,-8.47 6.13A120.26,120.26 0,0 0,469 433.7C468.84,433.52 468.75,433.33 468.64,433.16ZM498.69,463.09c-0.38,13.56 -0.82,27.27 0,40.82 0.05,1.75 0.13,3.48 0.21,5.21 -3.09,1.79 -6.06,4.43 -8.86,6.19 -4.5,2.83 -9,5.59 -13.5,8.5 -0.91,0.59 -1.83,1.2 -2.76,1.82 0,-2 -0.09,-3.93 -0.14,-5.9 -0.3,-11 -0.66,-22.1 -0.46,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08a115.81,115.81 0,0 0,-1.48 -13.89c-0.14,-0.74 -0.29,-1.58 -0.45,-2.46l0.66,-0.05a2.4,2.4 0,0 1,-0.27 -1.35l0.07,-0.05a2.42,2.42 0,0 1,0.62 -1.43l0.08,-0.08 0.12,-0.1a2.32,2.32 0,0 1,0.3 -0.22c2.59,-1.76 5.09,-3.64 7.6,-5.52h0c1.33,-1 2.66,-2 4,-3a1.8,1.8 0,0 1,0.81 -0.32l1.07,-0.82a100.76,100.76 0,0 1,9.12 -6.19c2,-1.19 4.22,-2 6,-3.34 0,1.92 0.11,3.84 0.12,5.71C501.67,437.35 499.06,450.19 498.69,463.09Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M350.89,448.88c-0.37,-5.69 -0.5,-11.38 -0.55,-17.08l-0.09,-1.2c-0.62,-8.89 -0.17,-17.78 0.16,-26.67 -0.05,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55L351.5,359c-0.13,-0.45 -0.23,-0.91 -0.34,-1.36l-0.18,-0.82c-0.06,-0.28 -0.11,-0.56 -0.16,-0.85s-0.11,-0.61 -0.15,-0.91 -0.06,-0.42 -0.09,-0.62c-0.12,-0.91 -0.21,-1.82 -0.28,-2.74h0l-4,0.09h0c-17.55,0.46 -35.09,1.86 -52.63,2.38l-2.51,0.06c-2.43,0.06 -4.85,0.11 -7.28,0.12h0q-3.81,3 -7.76,5.72l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5v2.16c0,0.72 0,1.15 0,1.73l-0.06,1.3c-0.32,6.84 -1.13,13.66 -1.92,20.48 -1.23,10.65 -1.91,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.65,33.43 0,2 0.1,4.06 0.16,6.13 0.1,0.37 0.21,0.74 0.32,1.11l-0.29,0.11c0,1.17 0.06,2.36 0.07,3.54 13.74,-1.47 27.55,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.63,-0.07 3.25,-0.17 4.87,-0.26h0l2.64,-0.14h0.58l0.32,0.06 0.27,0.05h0.12c0.57,-0.42 1.15,-0.82 1.72,-1.23s1.33,-0.94 2,-1.39 1.53,-1 2.31,-1.56l2.32,-1.5c0.81,-0.52 1.62,-1 2.44,-1.54 8.41,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.62c1.14,-0.65 2.29,-1.31 3.42,-2l0.06,-0.07c1.05,-0.61 2.1,-1.21 3.14,-1.84C351.13,452.79 351,450.82 350.89,448.88ZM289.77,359.25c10.81,-0.46 21.68,-0.73 32.49,-0.93q6.62,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13,135.38 135.38,0 0,0 -13.72,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a2.71,2.71 0,0 1,-0.57 0l-0.5,0.06a3.73,3.73 0,0 1,-0.74 0.05h-0.11l-0.32,-0.08h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.5,0.65a76.66,76.66 0,0 0,-10.13 1.41c4.34,-3.15 9.14,-5.89 13.09,-9.11C278.77,366.14 283.82,362.22 289.77,359.25ZM282.16,475.6c-3.4,0.68 -6.77,1.49 -10.16,2.24 -4.15,0.64 -8.34,1.41 -12.52,1.69 -0.64,0 -1.29,0.06 -1.94,0.06 0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.21,-8.14 0.78,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.14,-0.44 5.55,-0.48 11.11,-1.5 16.6,-2.47 3.93,-0.7 8.23,-0.86 12.27,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.44 0,6.91 -0.15,10.34 -0.08,1.46 -0.32,3 -0.46,4.55l-2.31,0.27c-7.64,-1.89 -16.63,-0.16 -23.9,1.28ZM334.49,458.06c-4.5,2.83 -9.05,5.59 -13.5,8.5l-2.81,1.85c0,-2 -0.08,-4 -0.14,-5.93 -0.3,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08a115.84,115.84 0,0 0,-1.5 -13.89c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51a3.51,3.51 0,0 0,0.79 -0.06,2.5 2.5,0 0,1 -0.26,-1.35 3.58,3.58 0,0 1,0.09 -0.45v-0.08a1.8,1.8 0,0 1,0.16 -0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32,0.31 0.31,0 0,1 0.09,-0.11 2.54,2.54 0,0 1,0.43 -0.37c1.2,-0.82 2.38,-1.67 3.55,-2.52l1.37,-1c2.23,-1.64 4.43,-3.31 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19c2,-1.17 4.13,-2 5.89,-3.27 0.05,1.91 0.11,3.8 0.12,5.66 0.09,12.9 -2.52,25.74 -2.89,38.64 -0.39,13.56 -0.82,27.26 0,40.82 0.1,1.73 0.2,3.46 0.29,5.19 -3.1,1.78 -6.07,4.41 -8.86,6.17Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M292.4,441.09a1.64,1.64 0,0 1,-2 -1.19,1.58 1.58,0 0,1 -0.05,-0.38c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.18,5.28 -0.64,10.54 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.23,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.39 20.83,14.09 30,6.54a17.77,17.77 0,0 0,4.74 -6.38A57.24,57.24 0,0 0,292.4 441.09Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M289,410.81a16.77,16.77 0,0 0,-13.37 1.75c-9.09,4 -14.92,15.25 -12.48,25 0.12,0.48 0.26,0.94 0.42,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.48,-11.81 0.51,-17.73a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.66 4.32,-9.85 7.33,-14.33 0.67,-1 2.53,-1 2.79,0.37 1.2,6.36 0.69,12.73 0.53,19.14 2.2,-0.12 4.4,0 6.61,-0.12C303.15,427.19 299.49,413.8 289,410.81Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M340.68,263.07c-0.37,-5.69 -0.51,-11.38 -0.55,-17.08 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.89 -0.17,-17.78 0.16,-26.67 -0.05,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55v-0.43c-0.13,-0.45 -0.23,-0.9 -0.34,-1.36 -0.06,-0.27 -0.13,-0.55 -0.18,-0.82s-0.11,-0.56 -0.16,-0.84 -0.11,-0.62 -0.16,-0.92 -0.05,-0.41 -0.08,-0.62c-0.12,-0.91 -0.22,-1.82 -0.28,-2.73h0c-1.34,0 -2.68,0 -4,0.08h0c-17.55,0.46 -35.09,1.86 -52.63,2.38l-2.52,0.06c-2.42,0.06 -4.85,0.11 -7.27,0.12h0q-3.81,3 -7.76,5.72l-0.75,0.63h0c-8.17,6.88 -16,14.13 -23.75,21.5v2.16a15.37,15.37 0,0 1,-0.06 1.73v1.3c-0.32,6.84 -1.13,13.67 -1.92,20.48 -1.23,10.66 -1.92,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.66,33.43 0,2 0.11,4.06 0.17,6.13 0.1,0.37 0.2,0.74 0.32,1.11l-0.29,0.11c0,1.17 0.05,2.36 0.07,3.54 13.74,-1.47 27.55,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.63,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.57l0.33,0.05 0.27,0.05L297,295.47l1.73,-1.23 2,-1.39c0.77,-0.53 1.54,-1 2.32,-1.55l2.32,-1.51c0.81,-0.52 1.62,-1 2.44,-1.55 8.41,-5.21 17.13,-9.93 25.72,-14.86h0l1.05,-0.62c1.14,-0.66 2.28,-1.31 3.41,-2l0.06,-0.06c1,-0.62 2.1,-1.22 3.14,-1.85A57.79,57.79 0,0 1,340.68 263.07ZM279.53,173.5c10.81,-0.47 21.68,-0.74 32.49,-0.94q6.62,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13,135.38 135.38,0 0,0 -13.72,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a2.72,2.72 0,0 1,-0.57 0l-0.5,0.06a4.68,4.68 0,0 1,-0.74 0h-0.11l-0.32,-0.08h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.51,0.65a76.51,76.51 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.88 13.08,-9.11C268.56,180.38 273.61,176.46 279.53,173.5ZM271.92,289.88c-3.4,0.68 -6.78,1.49 -10.16,2.24 -4.16,0.64 -8.34,1.41 -12.52,1.69 -0.64,0 -1.29,0.06 -1.94,0.06 0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.2,-8.14 0.77,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.13,-0.44 5.56,-0.48 11.12,-1.5 16.6,-2.47 3.94,-0.7 8.24,-0.86 12.28,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.45 0,6.91 -0.15,10.34 -0.08,1.46 -0.32,3 -0.46,4.55l-2.31,0.28C288.17,286.67 279.19,288.4 271.92,289.88ZM324.25,272.34c-4.5,2.83 -9.05,5.59 -13.5,8.5 -0.92,0.6 -1.86,1.22 -2.81,1.86q-0.06,-3 -0.14,-5.94c-0.3,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.61,-19.39 0.06,-29.08a113.82,113.82 0,0 0,-1.49 -13.89c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.79,0a2.55,2.55 0,0 1,-0.26 -1.36,3.58 3.58,0 0,1 0.09,-0.45v-0.08a2.11,2.11 0,0 1,0.17 -0.38,0.14 0.14,0 0,1 0.06,-0.11 1.72,1.72 0,0 1,0.23 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.2,-0.82 2.38,-1.67 3.55,-2.52l1.36,-1c2.23,-1.65 4.44,-3.32 6.69,-4.94a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19c2,-1.16 4.13,-2 5.89,-3.27 0,1.91 0.11,3.8 0.12,5.66 0.08,12.9 -2.52,25.74 -2.89,38.64 -0.39,13.56 -0.83,27.27 0,40.82 0.1,1.73 0.21,3.46 0.3,5.19 -3.1,1.72 -6.06,4.38 -8.85,6.14Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M282.18,255.33a1.64,1.64 0,0 1,-2 -1.2,1.5 1.5,0 0,1 -0.05,-0.37c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.18,5.28 -0.64,10.54 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.23,24.11 24.11,0 0,1 -8.8,-0.25c5.19,10.38 20.83,14.08 30,6.53a17.63,17.63 0,0 0,4.73 -6.38A57.24,57.24 0,0 0,282.18 255.33Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M278.77,225.05a16.81,16.81 0,0 0,-13.37 1.75c-9.1,4 -14.93,15.25 -12.49,25a11.58,11.58 0,0 0,0.43 1.4,43.66 43.66,0 0,0 8,-0.16c0,-5.91 0.49,-11.81 0.52,-17.73a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.66 4.32,-9.85 7.33,-14.33 0.67,-1 2.52,-1 2.79,0.37 1.2,6.36 0.69,12.73 0.52,19.14 2.21,-0.11 4.41,0 6.62,-0.12C292.94,241.43 289.27,228 278.77,225.05Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M741.44,362.51c-0.37,-5.7 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.1,-1.2 -0.61,-8.89 -0.16,-17.78 0.17,-26.67 -0.06,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55v-0.43c-0.12,-0.45 -0.23,-0.91 -0.33,-1.36 -0.07,-0.27 -0.13,-0.55 -0.19,-0.82l-0.15,-0.84c-0.06,-0.31 -0.11,-0.62 -0.16,-0.92s-0.06,-0.41 -0.08,-0.61c-0.12,-0.91 -0.22,-1.83 -0.28,-2.74h0l-4,0.08h0c-17.56,0.46 -35.09,1.87 -52.64,2.38l-2.51,0.07c-2.42,0 -4.85,0.1 -7.28,0.12h0c-2.53,2 -5.11,3.89 -7.75,5.71l-0.75,0.63h0c-8.17,6.88 -16,14.13 -23.76,21.5v3.89a10.14,10.14 0,0 1,0 1.3c-0.32,6.84 -1.13,13.67 -1.92,20.48 -1.24,10.66 -1.92,21.32 -2.47,32 -0.57,11.17 -0.88,22.25 -0.65,33.43 0,2 0.11,4.06 0.17,6.13 0.09,0.37 0.2,0.74 0.31,1.11l-0.28,0.11c0,1.17 0,2.36 0.07,3.54 13.73,-1.47 27.55,-1.74 41.36,-2.18a99.24,99.24 0,0 1,10.06 -0.3c1.62,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.63,-0.14h0.58l0.33,0.05 0.27,0.06h0.11l1.72,-1.22 2,-1.4 2.31,-1.55c0.77,-0.51 1.55,-1 2.33,-1.51s1.62,-1 2.44,-1.54c8.4,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.62c1.14,-0.65 2.28,-1.31 3.41,-2l0.07,-0.06c1,-0.62 2.1,-1.22 3.13,-1.85C741.68,366.46 741.57,364.49 741.44,362.51ZM680.28,272.93c10.82,-0.47 21.69,-0.73 32.49,-0.94q6.63,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13,136.35 136.35,0 0,0 -13.71,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a1.88,1.88 0,0 1,-0.58 0l-0.49,0.06a3.78,3.78 0,0 1,-0.75 0.05h-0.1l-0.33,-0.07h-0.09c-6.19,0.29 -12.4,0.21 -18.6,0.24s-12.36,0.07 -18.51,0.65A76.66,76.66 0,0 0,651 293.2c4.34,-3.15 9.15,-5.88 13.09,-9.11C669.32,279.81 674.37,275.88 680.28,272.93ZM672.68,389.27c-3.41,0.68 -6.78,1.49 -10.17,2.24 -4.15,0.64 -8.33,1.41 -12.51,1.69 -0.65,0.05 -1.3,0.06 -1.94,0.06 0.73,-7.16 -0.92,-14.52 -0.75,-21.7q0.35,-15.06 0.75,-30.15c0.2,-8.14 0.77,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.13,-0.44 5.56,-0.48 11.11,-1.5 16.6,-2.47 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.49,16.78 -1.86,33.78 -1.39,50.56 0.19,6.87 0.89,13.71 1,20.57 0.08,3.45 0,6.91 -0.14,10.35 -0.09,1.45 -0.32,3 -0.46,4.54l-2.32,0.28c-7.61,-1.91 -16.59,-0.13 -23.86,1.26ZM725,371.73c-4.5,2.83 -9,5.59 -13.5,8.5 -0.92,0.6 -1.86,1.22 -2.8,1.86 0,-2 -0.09,-4 -0.14,-5.94 -0.3,-11 -0.66,-22.1 -0.46,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08A113.82,113.82 0,0 0,706.68 300c-0.14,-0.76 -0.29,-1.61 -0.46,-2.51h0.8a2.55,2.55 0,0 1,-0.26 -1.36,1.8 1.8,0 0,1 0.09,-0.45 0.11,0.11 0,0 1,0 -0.08,2.05 2.05,0 0,1 0.16,-0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37q1.8,-1.23 3.55,-2.52l1.37,-1c2.23,-1.65 4.43,-3.31 6.67,-4.93a1.8,1.8 0,0 1,0.81 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19,62.3 62.3,0 0,0 5.89,-3.26c0,1.9 0.11,3.79 0.12,5.65 0.08,12.9 -2.53,25.74 -2.9,38.64 -0.38,13.56 -0.82,27.27 0,40.82l0.3,5.19c-3.08,1.73 -6.08,4.36 -8.85,6.12Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M682.94,354.76a1.67,1.67 0,0 1,-2 -1.21,2.2 2.2,0 0,1 0,-0.36c0,-5.24 0.64,-10.57 0.32,-15.82 -2.15,4.19 -3.78,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.19,5.28 -0.64,10.54 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.23,24.16 24.16,0 0,1 -8.81,-0.25c5.2,10.38 20.83,14.08 30,6.53a17.75,17.75 0,0 0,4.73 -6.38A57.07,57.07 0,0 0,682.94 354.76Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M679.5,324.48a16.79,16.79 0,0 0,-13.36 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.47 0.27,0.94 0.43,1.39a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.49,-11.81 0.52,-17.73a1.41,1.41 0,0 1,1.43 -1.42,1.52 1.52,0 0,1 0.72,0.19c4.58,2.94 6.41,8.09 8.79,12.77 2.68,-4.65 4.32,-9.85 7.33,-14.32 0.67,-1 2.52,-1 2.78,0.36 1.21,6.36 0.7,12.73 0.53,19.14 2.2,-0.11 4.4,0 6.62,-0.11C693.69,340.88 690,327.47 679.5,324.48Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M182,259.29c-0.37,-5.69 -0.51,-11.39 -0.55,-17.08 0,-0.41 -0.07,-0.81 -0.09,-1.21 -0.62,-8.88 -0.17,-17.78 0.16,-26.67v-14c0,-10.07 1.15,-20.37 1.09,-30.55v-0.44c-0.13,-0.45 -0.23,-0.9 -0.34,-1.35 -0.06,-0.28 -0.13,-0.55 -0.18,-0.83s-0.11,-0.56 -0.16,-0.84 -0.11,-0.61 -0.16,-0.92a2.83,2.83 0,0 0,-0.08 -0.61c-0.12,-0.91 -0.22,-1.82 -0.28,-2.74h0l-4,0.08h0c-17.56,0.45 -35.09,1.86 -52.64,2.37l-2.5,0.07c-2.43,0.06 -4.86,0.11 -7.28,0.12h0c-2.54,2 -5.12,3.89 -7.76,5.72l-0.75,0.63h0c-8.17,6.87 -16,14.12 -23.75,21.5v2.16a15.37,15.37 0,0 1,-0.06 1.73v1.3c-0.32,6.84 -1.13,13.66 -1.92,20.48 -1.23,10.65 -1.92,21.32 -2.46,32 -0.57,11.16 -0.89,22.25 -0.66,33.43 0,2 0.11,4.05 0.17,6.13 0.1,0.37 0.2,0.74 0.32,1.1l-0.29,0.11c0,1.18 0,2.36 0.07,3.55 13.74,-1.47 27.55,-1.75 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38l4.87,-0.26h0l2.64,-0.14a2.72,2.72 0,0 1,0.57 0l0.33,0.05 0.27,0.06h0.11l1.73,-1.22 2,-1.4c0.77,-0.52 1.54,-1 2.32,-1.55s1.54,-1 2.32,-1.5 1.62,-1 2.44,-1.55c8.4,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.07c1,-0.62 2.1,-1.22 3.14,-1.85Q182.15,262.27 182,259.29ZM120.82,169.71c10.81,-0.46 21.68,-0.73 32.49,-0.93 4.41,-0.09 8.83,-0.13 13.25,-0.17a104,104 0,0 0,-8.46 6.13,136 136,0 0,0 -13.69,12.14c-0.1,-0.17 -0.19,-0.36 -0.3,-0.52a7.56,7.56 0,0 1,-1.89 0.65,1.7 1.7,0 0,1 -0.61,0.46 2.19,2.19 0,0 1,-0.33 0.12h-0.15a2.71,2.71 0,0 1,-0.57 0L140,187.59a3.12,3.12 0,0 1,-0.74 0.06h-0.11a1.65,1.65 0,0 1,-0.32 -0.07h-0.09c-6.2,0.29 -12.41,0.22 -18.61,0.25s-12.36,0.06 -18.51,0.65a74.67,74.67 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.89 13.08,-9.11C109.83,176.59 114.88,172.67 120.77,169.71ZM113.21,286.06c-3.4,0.67 -6.78,1.49 -10.16,2.23 -4.16,0.65 -8.34,1.42 -12.52,1.7 -0.65,0 -1.29,0.05 -1.94,0.05 0.74,-7.15 -0.92,-14.52 -0.75,-21.7q0.36,-15.06 0.75,-30.14c0.2,-8.15 0.77,-16.25 1.57,-24.36 0.23,-2.39 1.27,-8.8 -0.62,-11.8 7.24,-1.09 14.88,0.2 22.13,-0.43 5.56,-0.48 11.12,-1.51 16.6,-2.48 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.48,16.79 -1.85,33.79 -1.38,50.57 0.19,6.86 0.88,13.7 1,20.57 0.08,3.44 0,6.9 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.59,-1.91 -16.57,-0.17 -23.84,1.27ZM165.54,268.51c-4.5,2.84 -9.05,5.6 -13.5,8.51l-2.78,1.86c0,-2 -0.09,-4 -0.14,-5.93 -0.3,-11 -0.66,-22.1 -0.45,-33.15 0.18,-9.7 0.61,-19.38 0.06,-29.08a112.8,112.8 0,0 0,-1.49 -13.84c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.79,-0.06a2.5,2.5 0,0 1,-0.26 -1.35,3.73 3.73,0 0,1 0.09,-0.46v-0.08a1,1 0,0 1,0.16 -0.37,0.34 0.34,0 0,1 0.07,-0.11 1.72,1.72 0,0 1,0.23 -0.32l0.1,-0.12a2.54,2.54 0,0 1,0.43 -0.37c1.2,-0.81 2.38,-1.66 3.55,-2.52l1.37,-1c2.22,-1.65 4.43,-3.32 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a97.55,97.55 0,0 1,9.13 -6.19c2,-1.17 4.13,-2 5.89,-3.27 0,1.9 0.11,3.8 0.12,5.66 0.08,12.89 -2.52,25.74 -2.89,38.63 -0.39,13.57 -0.83,27.27 0,40.82 0.1,1.74 0.21,3.47 0.3,5.2 -3.1,1.74 -6.06,4.36 -8.85,6.12Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M123.45,251.54a1.63,1.63 0,0 1,-2 -1.18,1.58 1.58,0 0,1 0,-0.38c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.64 -6.49,12.53a1.51,1.51 0,0 1,-2.07 0.49,1.41 1.41,0 0,1 -0.48,-0.49c-2.25,-3.87 -3.64,-8.88 -6.78,-12.21 -0.18,5.28 -0.64,10.55 -0.75,15.83a1.31,1.31 0,0 1,-0.94 1.24,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.38 20.83,14.09 30,6.54a17.58,17.58 0,0 0,4.73 -6.39A59.53,59.53 0,0 0,123.45 251.54Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M120,221.27A16.81,16.81 0,0 0,106.65 223c-9.1,4 -14.93,15.26 -12.49,25 0.12,0.48 0.27,0.94 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.92 0.49,-11.82 0.52,-17.73a1.43,1.43 0,0 1,1.45 -1.42,1.46 1.46,0 0,1 0.7,0.18c4.59,2.94 6.42,8.1 8.79,12.77 2.68,-4.65 4.32,-9.84 7.33,-14.32 0.67,-1 2.52,-1 2.79,0.36 1.2,6.37 0.69,12.73 0.52,19.15 2.21,-0.12 4.41,0 6.62,-0.12C134.21,237.64 130.54,224.25 120,221.27Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M491.52,140.72c-0.37,-5.69 -0.51,-11.39 -0.56,-17.08l-0.09,-1.2c-0.61,-8.89 -0.17,-17.78 0.16,-26.67 0,-4.66 0,-9.32 0,-14 0,-10.07 1.14,-20.37 1.08,-30.55v-0.43c-0.13,-0.45 -0.23,-0.91 -0.34,-1.36l-0.18,-0.82a5.08,5.08 0,0 0,-0.16 -0.85c-0.05,-0.28 -0.11,-0.61 -0.15,-0.91l-0.09,-0.62c-0.12,-0.91 -0.21,-1.82 -0.27,-2.74h0c-1.34,0 -2.68,0 -4,0.09h0c-17.55,0.46 -35.08,1.86 -52.63,2.38l-2.51,0.06c-2.43,0.06 -4.85,0.11 -7.28,0.12h0c-2.54,2 -5.11,3.89 -7.76,5.72l-0.74,0.63h0c-8.16,6.88 -16,14.13 -23.75,21.5v3.89a10.06,10.06 0,0 1,-0.05 1.3c-0.33,6.84 -1.13,13.66 -1.92,20.48 -1.24,10.65 -1.92,21.32 -2.47,32 -0.57,11.16 -0.88,22.25 -0.65,33.43 0,2 0.11,4.06 0.16,6.13 0.1,0.37 0.21,0.74 0.32,1.11l-0.28,0.1c0,1.18 0.05,2.37 0.06,3.55 13.74,-1.47 27.56,-1.74 41.36,-2.18a100.71,100.71 0,0 1,10.28 -0.38c1.62,-0.07 3.24,-0.17 4.87,-0.26h0l2.63,-0.14a5.61,5.61 0,0 1,0.58 0l0.33,0.06 0.27,0h0.11c0.57,-0.42 1.15,-0.82 1.72,-1.23l2,-1.4 2.31,-1.55 2.33,-1.5c0.81,-0.52 1.62,-1 2.44,-1.55 8.4,-5.22 17.13,-9.93 25.72,-14.86h0l1,-0.61c1.14,-0.66 2.28,-1.31 3.41,-2l0.07,-0.07c1,-0.61 2.1,-1.21 3.13,-1.84C491.77,144.68 491.65,142.71 491.52,140.72ZM430.36,51.14c10.82,-0.46 21.69,-0.73 32.49,-0.93q6.61,-0.12 13.25,-0.17c-2.92,1.91 -5.75,4 -8.46,6.14a136.35,136.35 0,0 0,-13.71 12.15c-0.11,-0.18 -0.2,-0.36 -0.31,-0.53a7.48,7.48 0,0 1,-1.88 0.65,1.85 1.85,0 0,1 -0.61,0.47 2.13,2.13 0,0 1,-0.33 0.11h-0.16a1.82,1.82 0,0 1,-0.57 0l-0.49,0.06a3.78,3.78 0,0 1,-0.75 0h-0.06a1.14,1.14 0,0 1,-0.33 -0.07h-0.09c-6.2,0.29 -12.4,0.21 -18.61,0.24s-12.36,0.07 -18.5,0.65a76.66,76.66 0,0 0,-10.13 1.41c4.34,-3.15 9.14,-5.89 13.09,-9.11C419.4,58 424.44,54.11 430.36,51.14ZM422.77,167.49c-3.4,0.68 -6.77,1.49 -10.16,2.24 -4.15,0.64 -8.33,1.41 -12.51,1.69q-1,0.06 -2,0.06c0.74,-7.16 -0.91,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.21,-8.15 0.78,-16.25 1.57,-24.35 0.24,-2.39 1.28,-8.81 -0.61,-11.81 7.24,-1.08 14.88,0.2 22.13,-0.43 5.56,-0.48 11.11,-1.5 16.6,-2.47 3.93,-0.7 8.24,-0.87 12.27,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.57 0.08,3.44 0,6.91 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.55l-2.31,0.27C439,164.32 430,166.05 422.77,167.49ZM475.1,150c-4.5,2.83 -9.05,5.59 -13.5,8.5l-2.8,1.85c-0.05,-2 -0.09,-4 -0.14,-5.93 -0.3,-11 -0.66,-22.1 -0.46,-33.14 0.18,-9.7 0.62,-19.39 0.07,-29.08a111.89,111.89 0,0 0,-1.5 -13.89c-0.13,-0.76 -0.28,-1.61 -0.45,-2.51l0.8,-0.06a2.5,2.5 0,0 1,-0.26 -1.35,2.36 2.36,0 0,1 0.08,-0.45v-0.08a1.8,1.8 0,0 1,0.16 -0.38l0.06,-0.11a2.43,2.43 0,0 1,0.24 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.19,-0.82 2.37,-1.67 3.55,-2.52l1.37,-1c2.22,-1.65 4.43,-3.32 6.67,-4.93a1.76,1.76 0,0 1,0.8 -0.32c0.36,-0.27 0.71,-0.55 1.08,-0.82a99.38,99.38 0,0 1,9.12 -6.19c2,-1.17 4.13,-2 5.9,-3.27 0,1.91 0.11,3.8 0.12,5.66 0.08,12.9 -2.53,25.74 -2.9,38.64 -0.38,13.56 -0.82,27.26 0,40.82 0.1,1.73 0.2,3.46 0.29,5.19 -3.09,1.78 -6.06,4.41 -8.85,6.17Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M433,133a1.67,1.67 0,0 1,-2 -1.21,2.2 2.2,0 0,1 0,-0.36c0,-5.24 0.63,-10.57 0.32,-15.82 -2.15,4.18 -3.78,8.64 -6.5,12.53a1.48,1.48 0,0 1,-2 0.51,1.39 1.39,0 0,1 -0.51,-0.51c-2.26,-3.86 -3.64,-8.87 -6.79,-12.21 -0.18,5.29 -0.64,10.55 -0.75,15.84a1.29,1.29 0,0 1,-0.94 1.23,23.89 23.89,0 0,1 -8.8,-0.26c5.19,10.39 20.83,14.09 30,6.54a17.77,17.77 0,0 0,4.74 -6.38A55.13,55.13 0,0 0,433 133Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M429.58,102.7a16.75,16.75 0,0 0,-13.36 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.48 0.27,0.94 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.49,-11.82 0.52,-17.73a1.43,1.43 0,0 1,1.45 -1.42,1.46 1.46,0 0,1 0.7,0.18c4.58,3 6.41,8.1 8.78,12.77 2.69,-4.65 4.33,-9.84 7.33,-14.32 0.68,-1 2.53,-1 2.79,0.37 1.21,6.36 0.69,12.73 0.53,19.14 2.2,-0.12 4.4,0 6.61,-0.12C443.77,119.08 440.11,105.69 429.58,102.7Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M671.84,227.66c-0.37,-5.69 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.88 -0.17,-17.78 0.16,-26.67 -0.05,-4.66 0,-9.32 0,-14 0,-10.08 1.15,-20.37 1.09,-30.55v-0.44c-0.13,-0.45 -0.24,-0.9 -0.34,-1.35 -0.06,-0.28 -0.13,-0.55 -0.18,-0.83s-0.11,-0.56 -0.16,-0.84 -0.11,-0.61 -0.16,-0.92a2.83,2.83 0,0 0,-0.08 -0.61c-0.12,-0.91 -0.22,-1.82 -0.28,-2.74h0l-4,0.08h0c-17.55,0.46 -35.09,1.87 -52.64,2.38l-2.5,0.07q-3.65,0.09 -7.29,0.12h0c-2.54,2 -5.12,3.89 -7.76,5.71l-0.75,0.64h0c-8.17,6.87 -16,14.12 -23.75,21.5v2.15a15.64,15.64 0,0 1,-0.06 1.74,11.13 11.13,0 0,1 0,1.29c-0.32,6.85 -1.13,13.67 -1.92,20.49 -1.23,10.65 -1.92,21.32 -2.46,32 -0.57,11.16 -0.89,22.24 -0.66,33.42 0.05,2 0.11,4.06 0.17,6.13 0.1,0.38 0.2,0.75 0.32,1.11l-0.29,0.11c0,1.18 0,2.36 0.07,3.55 13.74,-1.48 27.55,-1.75 41.36,-2.18 3.41,-0.3 6.84,-0.43 10.27,-0.39 1.62,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.57l0.33,0.05 0.28,0.06h0.1l1.73,-1.22 2,-1.4 2.31,-1.55 2.33,-1.5c0.78,-0.5 1.62,-1 2.44,-1.55 8.41,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.07c1,-0.62 2.1,-1.22 3.14,-1.85Q672,230.64 671.84,227.66ZM610.68,138.08c10.82,-0.47 21.69,-0.73 32.5,-0.94 4.41,-0.08 8.83,-0.12 13.24,-0.16a103.87,103.87 0,0 0,-8.45 6.13,136.47 136.47,0 0,0 -13.72,12.15c-0.1,-0.17 -0.19,-0.36 -0.3,-0.52a7.15,7.15 0,0 1,-1.89 0.64,1.73 1.73,0 0,1 -0.61,0.47 2.19,2.19 0,0 1,-0.33 0.12L631,155.97a2.81,2.81 0,0 1,-0.58 0l-0.49,0.05a3.11,3.11 0,0 1,-0.74 0h-0.11a1.65,1.65 0,0 1,-0.32 -0.07h-0.09c-6.2,0.29 -12.41,0.22 -18.61,0.24s-12.36,0.07 -18.51,0.66a74.67,74.67 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.89 13.08,-9.12C599.77,145 604.77,141 610.68,138.08ZM603.08,254.43c-3.4,0.67 -6.78,1.49 -10.16,2.23 -4.16,0.65 -8.34,1.42 -12.52,1.7 -0.65,0 -1.29,0.05 -1.94,0.05 0.74,-7.15 -0.92,-14.52 -0.75,-21.7q0.36,-15.08 0.75,-30.14c0.2,-8.15 0.77,-16.25 1.57,-24.36 0.23,-2.39 1.27,-8.8 -0.62,-11.8 7.24,-1.09 14.88,0.2 22.13,-0.43 5.56,-0.48 11.12,-1.51 16.6,-2.48 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.79 -1.39,50.57 0.2,6.86 0.89,13.7 1,20.57 0.08,3.44 0,6.9 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.61,-1.91 -16.59,-0.17 -23.86,1.27ZM655.41,236.88c-4.5,2.84 -9,5.6 -13.51,8.51l-2.8,1.85c0,-2 -0.09,-4 -0.14,-5.93 -0.3,-11.05 -0.66,-22.1 -0.45,-33.15 0.18,-9.7 0.61,-19.38 0.06,-29.08a113.44,113.44 0,0 0,-1.49 -13.88c-0.14,-0.76 -0.28,-1.62 -0.45,-2.51a3.55,3.55 0,0 0,0.79 -0.06,2.5 2.5,0 0,1 -0.26,-1.35 1.87,1.87 0,0 1,0.09 -0.46v-0.08a1.73,1.73 0,0 1,0.16 -0.37,0.34 0.34,0 0,1 0.07,-0.11 1.5,1.5 0,0 1,0.23 -0.33l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.2,-0.81 2.38,-1.66 3.55,-2.52l1.38,-1c2.22,-1.64 4.42,-3.31 6.67,-4.93a1.64,1.64 0,0 1,0.8 -0.31l1.13,-0.81a103,103 0,0 1,9.13 -6.19c2,-1.16 4.13,-1.95 5.89,-3.26 0,1.9 0.11,3.8 0.12,5.66 0.08,12.89 -2.52,25.74 -2.89,38.63 -0.39,13.56 -0.83,27.27 0,40.82 0.1,1.74 0.21,3.47 0.3,5.2C661.16,232.5 658.2,235.12 655.41,236.88Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M613.34,219.88a1.63,1.63 0,0 1,-2 -1.18,1.58 1.58,0 0,1 -0.05,-0.38c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.64 -6.49,12.53a1.51,1.51 0,0 1,-2.07 0.49,1.41 1.41,0 0,1 -0.48,-0.49c-2.25,-3.87 -3.64,-8.88 -6.78,-12.21 -0.18,5.28 -0.64,10.55 -0.75,15.83a1.31,1.31 0,0 1,-0.94 1.24,24.33 24.33,0 0,1 -8.8,-0.26c5.19,10.38 20.83,14.09 30,6.54a17.58,17.58 0,0 0,4.73 -6.39A59.53,59.53 0,0 0,613.34 219.88Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M609.91,189.63a16.85,16.85 0,0 0,-13.37 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.48 0.27,0.94 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.92 0.49,-11.82 0.52,-17.74a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.65 4.32,-9.84 7.33,-14.32 0.67,-1 2.52,-1 2.79,0.36 1.2,6.37 0.69,12.73 0.52,19.15 2.21,-0.12 4.41,0 6.62,-0.12C624.1,206 620.43,192.62 609.91,189.63Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M684.87,580.4c-0.37,-5.7 -0.51,-11.39 -0.55,-17.09 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.89 -0.17,-17.78 0.16,-26.67v-14c0,-10.07 1.15,-20.36 1.09,-30.54v-0.44c-0.13,-0.45 -0.23,-0.9 -0.34,-1.36 -0.06,-0.27 -0.13,-0.54 -0.18,-0.82s-0.11,-0.56 -0.16,-0.84 -0.11,-0.61 -0.16,-0.92a2.83,2.83 0,0 0,-0.08 -0.61c-0.12,-0.91 -0.22,-1.83 -0.28,-2.74h0l-4,0.08h0c-17.55,0.46 -35.09,1.87 -52.64,2.38l-2.5,0.07q-3.64,0.09 -7.28,0.12h0c-2.54,2 -5.12,3.89 -7.76,5.71l-0.75,0.64h0c-8.17,6.87 -16,14.12 -23.75,21.5v2.15c0,0.72 0,1.16 -0.05,1.73l-0.06,1.3c-0.32,6.85 -1.13,13.67 -1.92,20.49 -1.23,10.65 -1.92,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.65,33.43 0,2 0.1,4.06 0.16,6.13 0.1,0.38 0.21,0.75 0.32,1.11l-0.29,0.11c0,1.18 0.06,2.36 0.07,3.55 13.74,-1.48 27.55,-1.75 41.36,-2.18 3.41,-0.3 6.84,-0.43 10.27,-0.39 1.63,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.57l0.33,0 0.27,0.06h0.11l1.73,-1.22 2,-1.4c0.77,-0.52 1.54,-1 2.32,-1.55l2.32,-1.51 2.44,-1.54c8.41,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.07c1.05,-0.62 2.1,-1.22 3.14,-1.85Q685.07,583.39 684.87,580.4ZM623.77,490.82c10.81,-0.47 21.68,-0.73 32.49,-0.94q6.62,-0.12 13.25,-0.16a102.32,102.32 0,0 0,-8.46 6.13A136.47,136.47 0,0 0,647.33 508c-0.1,-0.17 -0.19,-0.36 -0.3,-0.52a7.15,7.15 0,0 1,-1.89 0.64,1.73 1.73,0 0,1 -0.61,0.47l-0.33,0.12h-0.15a1.82,1.82 0,0 1,-0.57 0l-0.5,0.06a2.66,2.66 0,0 1,-0.74 0.05h-0.11l-0.32,-0.07h-0.09c-6.2,0.29 -12.41,0.22 -18.61,0.24s-12.36,0.07 -18.51,0.65a74.68,74.68 0,0 0,-10.12 1.42c4.34,-3.15 9.14,-5.89 13.09,-9.12C612.77,497.7 617.77,493.78 623.77,490.82ZM616.16,607.17c-3.4,0.67 -6.78,1.48 -10.16,2.23 -4.16,0.64 -8.34,1.42 -12.52,1.69 -0.64,0 -1.29,0.06 -1.94,0.06 0.74,-7.15 -0.92,-14.52 -0.75,-21.7q0.36,-15.08 0.75,-30.14c0.2,-8.15 0.77,-16.26 1.57,-24.36 0.23,-2.39 1.27,-8.8 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.14,-0.43 5.55,-0.49 11.11,-1.51 16.59,-2.48 3.94,-0.69 8.24,-0.86 12.28,-1.64a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.38,50.56 0.19,6.87 0.88,13.71 1,20.58 0.08,3.44 0,6.9 -0.15,10.34 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.66,-1.91 -16.65,-0.17 -23.92,1.27ZM668.49,589.62c-4.5,2.84 -9,5.6 -13.5,8.5L652.18,600c0,-2 -0.08,-4 -0.14,-5.94 -0.3,-11 -0.66,-22.09 -0.45,-33.14 0.18,-9.7 0.61,-19.38 0.06,-29.08a113.82,113.82 0,0 0,-1.49 -13.89c-0.14,-0.75 -0.28,-1.61 -0.45,-2.51l0.79,0a2.5,2.5 0,0 1,-0.26 -1.35,3.73 3.73,0 0,1 0.09,-0.46v-0.08a1.76,1.76 0,0 1,0.17 -0.37,0.34 0.34,0 0,1 0.06,-0.12 2.35,2.35 0,0 1,0.23 -0.32l0.1,-0.11a2.21,2.21 0,0 1,0.43 -0.37q1.8,-1.23 3.55,-2.52l1.37,-1c2.23,-1.65 4.43,-3.32 6.68,-4.94a1.64,1.64 0,0 1,0.8 -0.31l1.07,-0.83a99.53,99.53 0,0 1,9.13 -6.19c2,-1.16 4.13,-1.95 5.89,-3.26 0,1.9 0.11,3.8 0.12,5.66 0.09,12.89 -2.52,25.73 -2.89,38.63 -0.39,13.56 -0.82,27.27 0,40.82 0.11,1.73 0.21,3.47 0.3,5.2 -3.15,1.79 -6.11,4.43 -8.9,6.17Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M626.38,572.65a1.64,1.64 0,0 1,-2 -1.19,1.5 1.5,0 0,1 0,-0.37c0,-5.24 0.63,-10.57 0.31,-15.83 -2.15,4.19 -3.77,8.65 -6.49,12.54a1.51,1.51 0,0 1,-2.07 0.49,1.41 1.41,0 0,1 -0.48,-0.49c-2.25,-3.87 -3.64,-8.88 -6.78,-12.21 -0.18,5.28 -0.64,10.55 -0.75,15.83a1.29,1.29 0,0 1,-0.94 1.24,24.33 24.33,0 0,1 -8.8,-0.26c5.19,10.38 20.83,14.08 30,6.53a17.55,17.55 0,0 0,4.73 -6.38A59.35,59.35 0,0 0,626.38 572.65Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M622.94,542.37a16.85,16.85 0,0 0,-13.37 1.75c-9.09,4 -14.93,15.25 -12.48,25 0.12,0.47 0.26,0.94 0.42,1.39a44.56,44.56 0,0 0,8 -0.15c0,-5.92 0.48,-11.82 0.51,-17.74a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.65 4.32,-9.84 7.33,-14.32 0.67,-1 2.52,-1 2.79,0.36 1.2,6.37 0.69,12.73 0.52,19.14 2.21,-0.11 4.41,0 6.62,-0.11C637.13,558.75 633.47,545.36 622.94,542.37Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M176.77,428.77c-0.37,-5.69 -0.51,-11.38 -0.55,-17.08 0,-0.4 -0.07,-0.8 -0.09,-1.2 -0.62,-8.89 -0.17,-17.78 0.16,-26.67 0,-4.66 0,-9.32 0,-14 0,-10.07 1.15,-20.37 1.09,-30.55v-0.43c-0.13,-0.45 -0.24,-0.91 -0.34,-1.36 -0.06,-0.27 -0.13,-0.55 -0.18,-0.82s-0.11,-0.56 -0.16,-0.84 -0.11,-0.62 -0.16,-0.92a3.13,3.13 0,0 0,-0.08 -0.62c-0.12,-0.91 -0.22,-1.82 -0.28,-2.73h0c-1.34,0 -2.68,0 -4,0.08h0c-17.56,0.46 -35.09,1.87 -52.64,2.38l-2.5,0.06c-2.43,0.06 -4.86,0.11 -7.29,0.12h0q-3.81,3 -7.76,5.72l-0.75,0.63h0c-8.17,6.88 -16,14.13 -23.75,21.5v2.16a15.37,15.37 0,0 1,-0.06 1.73v1.3c-0.32,6.84 -1.13,13.66 -1.92,20.48 -1.23,10.66 -1.92,21.32 -2.46,32 -0.57,11.17 -0.89,22.25 -0.66,33.43 0,2 0.11,4.06 0.17,6.13 0.1,0.37 0.2,0.74 0.32,1.11l-0.29,0.11c0,1.17 0,2.36 0.07,3.54 13.74,-1.47 27.55,-1.74 41.36,-2.18a100.51,100.51 0,0 1,10.27 -0.38c1.62,-0.07 3.25,-0.17 4.87,-0.26h0c0.88,0 1.76,-0.08 2.64,-0.14h0.9l0.26,0.05h0.12l1.73,-1.23c0.66,-0.47 1.33,-0.93 2,-1.39s1.54,-1 2.32,-1.55l2.32,-1.51c0.81,-0.52 1.62,-1 2.44,-1.54 8.4,-5.22 17.13,-9.94 25.72,-14.87h0l1,-0.61 3.42,-2 0.06,-0.06c1,-0.62 2.1,-1.22 3.14,-1.85A53.62,53.62 0,0 1,176.77 428.77ZM115.61,339.2c10.82,-0.47 21.69,-0.74 32.5,-0.94q6.6,-0.12 13.24,-0.16a103.87,103.87 0,0 0,-8.45 6.13,135.38 135.38,0 0,0 -13.72,12.15c-0.1,-0.18 -0.19,-0.36 -0.3,-0.53a7.56,7.56 0,0 1,-1.89 0.65,1.85 1.85,0 0,1 -0.61,0.47 1.42,1.42 0,0 1,-0.33 0.11l-0.15,0.05a2.81,2.81 0,0 1,-0.58 0l-0.49,0.06a4.68,4.68 0,0 1,-0.74 0.05H134l-0.32,-0.08h-0.09c-6.2,0.29 -12.41,0.21 -18.61,0.24s-12.36,0.07 -18.51,0.65a76.51,76.51 0,0 0,-10.12 1.41c4.33,-3.15 9.14,-5.88 13.08,-9.11 5.19,-4.27 10.24,-8.19 16.15,-11.15ZM108,455.54c-3.4,0.68 -6.78,1.49 -10.16,2.24 -4.16,0.64 -8.34,1.41 -12.52,1.69 -0.65,0 -1.29,0.06 -1.94,0.06 0.74,-7.16 -0.92,-14.52 -0.75,-21.71q0.36,-15.06 0.75,-30.14c0.2,-8.14 0.77,-16.25 1.57,-24.35 0.23,-2.39 1.27,-8.81 -0.62,-11.8 7.24,-1.09 14.88,0.19 22.13,-0.44 5.56,-0.48 11.12,-1.5 16.6,-2.47 3.94,-0.7 8.24,-0.86 12.28,-1.65a3.44,3.44 0,0 0,-0.17 1c-0.48,16.78 -1.85,33.78 -1.39,50.56 0.2,6.87 0.89,13.71 1.05,20.57 0.08,3.45 0,6.91 -0.15,10.35 -0.08,1.45 -0.32,3 -0.46,4.54l-2.31,0.28c-7.71,-1.9 -16.69,-0.17 -24,1.27ZM160.34,438c-4.5,2.83 -9.05,5.59 -13.51,8.5l-2.8,1.86q-0.06,-3 -0.14,-5.94c-0.3,-11 -0.66,-22.1 -0.45,-33.14 0.18,-9.7 0.61,-19.39 0.06,-29.08A113.82,113.82 0,0 0,142 366.31c-0.14,-0.76 -0.28,-1.61 -0.45,-2.51l0.79,-0.05a2.55,2.55 0,0 1,-0.26 -1.36,1.8 1.8,0 0,1 0.09,-0.45v-0.08a2.05,2.05 0,0 1,0.16 -0.38l0.07,-0.11a1.72,1.72 0,0 1,0.23 -0.32l0.09,-0.11a2.61,2.61 0,0 1,0.44 -0.37c1.2,-0.82 2.38,-1.67 3.55,-2.52l1.37,-1c2.22,-1.64 4.43,-3.31 6.68,-4.93a1.76,1.76 0,0 1,0.8 -0.32l1.07,-0.82a99.62,99.62 0,0 1,9.13 -6.2c2,-1.16 4.13,-1.95 5.89,-3.27 0,1.91 0.11,3.8 0.12,5.66 0.08,12.9 -2.52,25.74 -2.89,38.64 -0.39,13.56 -0.83,27.27 0,40.82 0.1,1.73 0.21,3.46 0.3,5.19 -3.15,1.79 -6.11,4.42 -8.9,6.18Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M118.22,421a1.65,1.65 0,0 1,-2 -1.26,1.55 1.55,0 0,1 0,-0.31c0,-5.24 0.63,-10.57 0.31,-15.82 -2.15,4.18 -3.77,8.65 -6.49,12.53a1.5,1.5 0,0 1,-2.05 0.51,1.44 1.44,0 0,1 -0.5,-0.51c-2.25,-3.86 -3.64,-8.87 -6.78,-12.2 -0.18,5.28 -0.64,10.54 -0.75,15.83A1.29,1.29 0,0 1,99 421a24.11,24.11 0,0 1,-8.8 -0.25c5.19,10.38 20.83,14.08 30,6.53a17.63,17.63 0,0 0,4.73 -6.38A58.1,58.1 0,0 0,118.22 421Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M114.77,390.75a16.81,16.81 0,0 0,-13.37 1.75c-9.1,4 -14.93,15.25 -12.49,25 0.12,0.48 0.27,0.95 0.43,1.4a43.66,43.66 0,0 0,8 -0.16c0,-5.91 0.49,-11.81 0.52,-17.73a1.43,1.43 0,0 1,1.46 -1.41,1.39 1.39,0 0,1 0.69,0.18c4.59,2.94 6.42,8.09 8.79,12.77 2.68,-4.66 4.32,-9.85 7.33,-14.33 0.67,-1 2.52,-1 2.79,0.37 1.2,6.36 0.69,12.73 0.52,19.14 2.21,-0.11 4.41,0 6.62,-0.12C129,407.13 125.31,393.74 114.77,390.75Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M413.11,429.38c-5.08,-2.92 -11.2,-4.36 -16.81,-5.94 -6,-1.69 -12.11,-3.18 -18,-5.35 -5.66,-2.08 -11.2,-4.51 -17,-6.22 -4.28,-1.27 -11.8,-4.07 -15.57,-0.56a3,3 0,0 0,0 4.25h0c1.68,1.62 4.08,1.81 6.26,2.38a76.7,76.7 0,0 1,8.06 2.65c5.44,2.11 10.79,4.43 16.23,6.56 10.85,4.25 22.36,6.42 33.14,10.9C414.49,440.14 417.66,432 413.11,429.38Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M483.77,329.62c0.54,-4.13 -5.38,-4.89 -7.27,-2 -3.27,5.07 -3.54,12.28 -3.84,18.12 -0.33,6.73 -0.13,13.47 -0.48,20.2 -0.37,7 -1.42,13.93 -1.78,20.94 -0.41,7.75 -1.5,15.33 -2.2,23 -1.83,5.2 6.9,7.68 8.81,2.2 2.4,-6.93 2.26,-15.18 2.62,-22.45s1.34,-14.69 1.8,-22.05c0.41,-6.48 0.1,-13 0.22,-19.48S483,335.88 483.77,329.62Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M636.14,362.7c-6.31,2.88 -11.72,7.34 -17.12,11.64a166.31,166.31 0,0 1,-16.53 11.78c-12.06,7.43 -24.17,14.34 -35.47,22.94 -10.74,8.17 -21,16.91 -31.75,25.11a311.38,311.38 0,0 1,-33.73 22.2c-2.71,1.57 -0.92,6.28 2.19,5.19 12.75,-4.44 24.18,-12.26 35,-20.21s21.26,-16.47 32.1,-24.47c11.2,-8.25 23.15,-15 35,-22.21 12.13,-7.34 22.33,-17.47 34.76,-24.26C645.77,367.58 641.24,360.38 636.14,362.7Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M682.7,391.88a2.3,2.3 0,0 0,-2.56 -1c-3.39,0.77 -4.65,5.39 -5.85,8.23 -1.46,3.45 -2.81,6.94 -4,10.5 -2.72,8.26 -4.83,16.67 -6.76,25.15s-3.7,16.72 -5.52,25.09c-0.87,3.95 -1.76,7.91 -2.72,11.84 -0.85,3.45 -3.17,8.25 -1.89,11.7 1.13,3 4.23,3.69 6.7,1.77 2.77,-2.16 3.18,-7.21 4,-10.47 1,-3.92 1.86,-7.86 2.72,-11.8 1.84,-8.36 3.45,-16.77 5.24,-25.14 1.74,-8.12 3.57,-16.24 5.71,-24.27 1,-3.85 2.09,-7.7 3.31,-11.5C682.07,398.88 684.37,394.88 682.7,391.88Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M660.69,260.78c-3.68,-5.21 -7.88,-12.15 -13.45,-15.55a3.47,3.47 0,0 0,-5 3.89c1.39,5.6 6.45,10.52 9.59,15.21a68.73,68.73 0,0 1,4.85 8.07c1.09,2.26 1.12,4.91 2.85,6.8a4.46,4.46 0,0 0,6.29 0C670.3,274 663.84,265.24 660.69,260.78Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M471.32,211.46c-0.61,-9 -3.48,-17.42 -5.25,-26.19 -1.52,-7.53 -1.76,-16.68 -6.62,-23 -2.1,-2.72 -6.13,-1.18 -5.54,2.34 1.24,7.44 2.44,14.87 3.65,22.32 1.32,8.2 4,16.21 4.45,24.53C462.36,217.42 471.77,217.44 471.32,211.46Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M446.62,273.14c-2.5,-2.36 -6.89,-2.54 -10.1,-3.75 -3.68,-1.39 -7.22,-3.1 -10.86,-4.59 -9.45,-3.86 -19.48,-6.14 -29.15,-9.36 -10,-3.34 -19.94,-6.95 -30,-10.13 -9.69,-3.05 -20.44,-7.33 -30.7,-7.54a3.22,3.22 0,0 0,-1.61 6c4.54,2.52 9.84,3.93 14.73,5.6s10.08,3.3 15.09,5c10.23,3.52 20.29,7.5 30.51,11 9.29,3.21 19,5.55 28,9.43 3.73,1.6 7.41,3.32 11.21,4.75 3.43,1.29 8.61,3.47 11.94,1.09C448.06,278.93 449,275.42 446.62,273.14Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M239.77,243.47c-4.9,-3.25 -10.93,-5 -16.35,-7.22 -4.87,-2 -9.73,-3.86 -14.74,-5.44 -4.53,-1.44 -9.09,-2.8 -13.54,-4.47 -3.46,-1.29 -7.47,-2.77 -10.14,-5.42 -5,-5 -12.74,2.74 -7.76,7.76 6.81,6.86 17.81,9.25 26.76,11.92 5,1.48 9.83,3.23 14.72,5 6.07,2.16 12.6,5.13 19.15,4.92a3.8,3.8 0,0 0,1.9 -7.05Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M237.45,270c-4.22,0.3 -7.41,5.45 -9.8,8.52 -3.13,4 -6,8.19 -8.78,12.45 -6,9.09 -11.77,18.24 -18.56,26.74 -6.35,8 -12.91,15.76 -19,23.91 -2.28,3 -4.56,6.08 -6.66,9.25s-4.43,6.39 -2.77,10.31c1,2.31 4.08,2.46 6,1.57 2.62,-1.22 4.1,-5.46 5.66,-7.76 2,-3 4.21,-5.92 6.4,-8.82 6.08,-8.08 12.46,-15.93 18.61,-24a255.72,255.72 0,0 0,16.55 -25.26c2.65,-4.46 5.33,-8.92 8.09,-13.31 2,-3.16 6.51,-7.69 6.27,-11.58a2,2 0,0 0,-2 -2Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M529.77,76.1c-9.36,3.91 -15.86,12.16 -24.58,17.15 -3.42,1.92 -6.82,3.63 -10.16,5.63 -2.87,1.66 -6.76,3.65 -8.46,6.62 -2.15,3.74 2.05,7.43 5.64,5.64 2.81,-1.4 5.45,-3.41 8.24,-4.91 3.22,-1.74 6.53,-3.33 9.74,-5.09 8.35,-4.58 14.85,-11.75 23.12,-16.5C537.77,82.07 534.71,74 529.77,76.1Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M543.61,69.08a4.71,4.71 0,0 0,-3.19 -1.32,4.51 4.51,0 1,0 3.18,7.71h0a4.62,4.62 0,0 0,1.32 -3.19A4.55,4.55 0,0 0,543.61 69.08Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M550.56,61.34c-4.94,0 -4.95,7.68 0,7.68S555.51,61.34 550.56,61.34Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M341.45,59.68c-2.19,4.34 -3.2,9.44 -4.77,14.05C334.88,79 333,84.17 331,89.35c-3.73,9.9 -7.69,19.7 -11.54,29.56A275.72,275.72 0,0 0,309.4 149c-0.54,2.07 -5.28,24.91 0.27,22.87 3.37,-1.24 3.42,-6.83 4.18,-9.83 1.25,-4.93 2.6,-9.87 4.09,-14.74 3,-9.68 6.69,-19.1 10.41,-28.52s7.56,-19 11.17,-28.52c1.87,-5 3.69,-9.94 5.4,-15 1.51,-4.39 3.48,-9 3.91,-13.66C349.2,57.77 343.17,56.27 341.45,59.68Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M350.49,48.72a3,3 0,0 0,-0.37 -1.23,2.7 2.7,0 0,0 -1.59,-1.24 8,8 0,0 0,-0.75 -0.32,3.81 3.81,0 1,0 0.91,7 4,4 0,0 0,1.8 -4.2Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M352.22,35.88a6.46,6.46 0,0 0,-1 -0.74,3.54 3.54,0 0,0 -3.61,0A3.58,3.58 0,0 0,346.3 40a3.63,3.63 0,0 0,1.31 1.3,3.54 3.54,0 0,0 3.61,0 6.46,6.46 0,0 0,1 -0.74,3.32 3.32,0 0,0 0,-4.68Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M684.77,189c-1.09,0.93 -3.25,1.41 -4.56,2 -2,0.9 -3.92,1.85 -5.82,2.89 -3,1.67 -6.35,3.57 -8.23,6.59 -1.51,2.43 1.37,4.53 3.56,3.57 2.79,-1.22 5.36,-3 8.09,-4.31s6.7,-4 9.71,-4.11C694.52,195.55 690.55,184.16 684.77,189Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M165.05,116.47c-1.75,8.64 -2.18,17.52 -4.15,26.12 -1.83,8 -4.54,15.43 -3.37,23.7 0.6,4.2 7,3 7.17,-1 0.26,-7.74 3.49,-14.83 5,-22.32 1.67,-8 2.33,-16.15 4,-24.15C174.84,113.21 166.19,110.8 165.05,116.47Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M169.37,103.46c-4.63,0 -4.64,7.21 0,7.21S174,103.46 169.37,103.46Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M174.16,98.71a2.19,2.19 0,0 0,0.27 -1.1,2.8 2.8,0 0,0 -0.58,-1.62 2.64,2.64 0,0 0,-1.39 -1,3.12 3.12,0 0,0 -2.06,0.27 3.91,3.91 0,0 0,-1 0.7,3.08 3.08,0 0,0 -1.06,3.38 3.74,3.74 0,0 0,0.33 0.8,2.76 2.76,0 0,0 1.1,1.12h0l0.57,0.45A2.57,2.57 0,0 0,174.13 99Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M698.14,184.55c-4.45,0 -4.46,6.92 0,6.92S702.6,184.55 698.14,184.55Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M736,504.18a4.13,4.13 0,0 0,-2.35 -1.81,3.93 3.93,0 0,0 -3.82,1c-5.36,5.42 -13.92,7.93 -20.74,11 -4.58,2.06 -9,4.53 -13.43,6.8 -5.3,2.69 -10.89,4.69 -16.22,7.28 -2.32,1.14 -1.16,4.87 1.31,4.81 11.36,-0.31 21.84,-8.22 32,-12.51 4.31,-1.81 8.67,-3.51 12.9,-5.51 3.36,-1.59 7.3,-3.4 9.74,-6.31A4.07,4.07 0,0 0,736 504.18Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M745.63,499.09a4,4 0,0 0,-5.66 0l-0.05,0a4.14,4.14 0,0 0,-1.18 2.85,4.08 4.08,0 0,0 1.18,2.86 4.19,4.19 0,0 0,2.85 1.18,4 4,0 0,0 4,-4A4.15,4.15 0,0 0,745.63 499.09Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M751.1,493.88c-3.57,0 -3.57,5.54 0,5.54S754.66,493.88 751.1,493.88Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M448.4,304a2.47,2.47 0,0 0,-2.16 -1.24c-3.69,-0.09 -6.78,5 -9.41,7.13 -3.55,2.95 -7.52,5.4 -11.22,8.14 -9.28,6.88 -18.9,13.32 -28,20.38s-18,13.83 -26.81,21c-8.62,7 -17.45,14.13 -24.49,22.73 -1.63,2 0.52,5.65 3,3.9 19,-13.33 37.36,-27.52 56,-41.26 9.2,-6.77 19,-12.87 27.76,-20.21a108.92,108.92 0,0 0,10.57 -10.26C446.2,311.46 450.13,308.08 448.4,304Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M270.09,368.49c-2.3,-4.67 -6.49,-7.89 -10.34,-11.21 -4.33,-3.73 -8.73,-7.33 -13,-11.16 -9.65,-8.67 -19.31,-17.37 -29.19,-25.77 -9,-7.66 -18.27,-15 -27.22,-22.73 -9.34,-8.06 -17.65,-16.87 -26,-25.94 -2.78,-3 -7.88,0.9 -5.69,4.4 12.64,20.22 33.52,34.67 51.32,50 9.78,8.42 19.29,17.19 28.92,25.8 4.33,3.86 8.54,8.1 13.45,11.24a55.82,55.82 0,0 1,12 9.77C267.26,376.12 271.82,372 270.09,368.49Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M421.06,172.11c-0.59,-2.7 -5.15,-2.86 -5.62,0 -0.59,3.66 -2.93,7.26 -4.81,10.36 -2.62,4.29 -5.44,8.45 -8.16,12.67 -7.2,11.19 -12.58,23.64 -19,35.32 -7.25,13.29 -14.5,26.43 -21.14,40.06 -6.79,13.94 -14.73,27.28 -21.52,41.23 -3.45,7.08 -6.39,14.37 -10,21.35 -3.21,6.14 -6.61,12.16 -9,18.67 -1.68,4.54 5.9,7.81 7.89,3.33 2.47,-5.58 5.49,-10.94 8.32,-16.34 3.3,-6.28 6,-12.76 9,-19.17 6.69,-14.3 14.87,-27.82 21.81,-42 6.77,-13.79 14,-27.24 21.21,-40.78 6.57,-12.28 12.1,-25.27 19.18,-37.25 2.86,-4.84 5.91,-9.56 8.45,-14.58C419.69,181 422.05,176.65 421.06,172.11Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M248.15,401.2c2,-0.36 -1,-0.51 -1.62,-0.63a27.92,27.92 0,0 0,-3 -0.37c-3.35,-0.23 -6.74,-0.23 -10.1,-0.43 -6.8,-0.4 -13.58,-1 -20.36,-1.71 -7,-0.7 -14,-1.57 -21,-2.31 -3.5,-0.37 -7,-0.74 -10.51,-1.09 -3.28,-0.33 -6.78,-1.08 -9.94,0.06a3.55,3.55 0,0 0,-0.84 6.41c3.21,2 7.42,2 11.1,2.46 3.48,0.48 7,1 10.45,1.48q10.72,1.53 21.52,2.68c7,0.74 14,1.42 21,1.87 3,0.2 6.12,0.07 9.09,0.43 2.29,0.28 4.48,1.36 6.81,0.49a4.85,4.85 0,0 0,-2.6 -9.34Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M569.51,225.23c-5.21,1.77 -10.25,4.37 -15.22,6.71S544.11,237 540,240.88c-3.56,3.33 1.28,9.94 5.32,6.9a103.61,103.61 0,0 1,13.9 -8.73c4.64,-2.45 9.7,-4.85 13.23,-8.84C574.24,228.14 572.52,224.2 569.51,225.23Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M626.09,484.88c-4.41,-11.33 -12.25,-20.74 -19.3,-30.49 -7.77,-10.76 -15.14,-21.81 -22.2,-33 -14.2,-22.6 -27.12,-45.91 -39.2,-69.7q-4.93,-9.75 -10,-19.4c-3.58,-6.8 -7,-14 -11.53,-20.21 -1.88,-2.61 -7,-1.16 -5.67,2.39 4.64,12.19 11.2,24 16.91,35.68 5.86,12 11.85,24 18.22,35.82a690.66,690.66 0,0 0,41.79 67.84c7.93,11.32 16.84,22 22.79,34.58C620,492.88 628,489.64 626.09,484.88Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M391.77,113.29c-5.44,-6.89 -15.41,-10 -23.29,-13a241.12,241.12 0,0 1,-28.07 -13c-9.78,-5.22 -19.38,-10.78 -29.27,-15.81 -3.57,-1.82 -7.22,-3.35 -10.93,-4.85 -3.1,-1.26 -8,-2.53 -10.09,-5.32 -1.46,-1.94 -4.84,-0.92 -4.14,1.75 2,7.51 9.53,10 15.77,13.24 10,5.16 19.69,11.09 29.43,16.75a246.55,246.55 0,0 0,29.21 14.63c8.18,3.4 16.12,6 23.13,11.43a3,3 0,0 0,4.19 2.91,4.09 4.09,0 0,0 2.36,-0.6l0.71,-0.46C393.62,119.09 393.77,115.81 391.77,113.29Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M279.82,53.42c-4.79,0 -4.8,7.44 0,7.44S284.61,53.42 279.82,53.42Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M270,48.2h-0.47c-3.73,-0.12 -3.74,5.91 0,5.8H270a2.9,2.9 0,0 0,0 -5.8Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M228,73.36c-0.25,-0.13 -0.5,-0.26 -0.74,-0.4 -5.07,-2.71 -5.07,7.38 0,4.67l0.74,-0.4a2.25,2.25 0,0 0,0.76 -3.1A2.33,2.33 0,0 0,228 73.36Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M230.37,85.14a4.23,4.23 0,0 0,-0.41 -0.33c-0.12,-0.11 -0.26,-0.22 -0.39,-0.32a2.44,2.44 0,0 0,-1.29 -0.33,3.1 3.1,0 0,0 -1.55,0.41 3.83,3.83 0,0 0,-1.64 2.13,2.58 2.58,0 0,0 1.78,3.2 1.77,1.77 0,0 0,0.4 0.08,2.67 2.67,0 0,0 2.84,-1.77 1.87,1.87 0,0 0,0.78 -1.08A2,2 0,0 0,230.37 85.14Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M257.34,183.55c-2.8,-7.2 -4.83,-14.66 -7,-22.07s-4.8,-14.94 -6.79,-22.5c-1.93,-7.36 -3.23,-14.87 -4.86,-22.3a101.75,101.75 0,0 0,-2.75 -10.7c-0.9,-2.63 -1.67,-6.36 -4.69,-7.15a2.33,2.33 0,0 0,-2.56 1c-1.61,2.43 0.07,5.91 0.61,8.51 0.72,3.44 1.41,6.88 2,10.34 1.3,7.72 2.34,15.48 4.21,23.09 1.82,7.4 4.18,14.7 6.16,22.06a221.63,221.63 0,0 0,6.89 22.1,4.84 4.84,0 0,0 4.4,3.35 3.6,3.6 0,0 0,3.22 -1.33C257.15,186.81 258,185.12 257.34,183.55Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M577.71,193.77c-5.27,-8 -13.37,-13.17 -20.38,-19.46 -8.24,-7.39 -16,-15.3 -24.06,-22.86 -7.43,-7 -16,-12.54 -24.39,-18.21a91.08,91.08 0,0 0,-10.41 -6.1,50.38 50.38,0 0,1 -5.37,-3c-1.43,-0.93 -2.57,-2.14 -4.23,-2.62a2.37,2.37 0,0 0,-2.92 1.63,2.55 2.55,0 0,0 -0.08,0.61c-0.76,6.44 10.93,11.27 15.06,14.39 8.05,6.09 16.62,11.76 23.93,18.75 7.79,7.45 15.21,15.27 23.09,22.62 6.82,6.27 15.82,11.63 21,19.36C572.55,204.3 581.34,199.25 577.71,193.77Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M84,246.39c-2.36,-3.9 -9.25,-4.88 -13.32,-5.93 -4.69,-1.21 -9.93,-2.77 -14.81,-2.22 -6.1,0.69 -6.36,10.18 0,9.75 4.76,-0.32 9.32,0.95 13.91,2 4.06,1 10.28,2.88 13.79,-0.31A2.78,2.78 0,0 0,84 246.39Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M43.77,238a3,3 0,1 0,3 3A3,3 0,0 0,43.77 238Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M36.2,239.43h0C36.2,239.64 36.3,239.76 36.2,239.43Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M36.18,239.38h0v-0.14a3,3 0,0 0,0.08 -0.6,2.67 2.67,0 0,0 0,-0.4 2.54,2.54 0,0 0,-0.07 -0.47l-0.06,-0.2a1.5,1.5 0,0 0,-1.36 -1.07c-1.7,-0.09 -2.76,1.59 -3,3.08a2.33,2.33 0,0 0,1.56 2.9,2.26 2.26,0 0,0 0.69,0.1 2.38,2.38 0,0 0,2.34 -2.42,2.32 2.32,0 0,0 -0.08,-0.58A0.75,0.75 0,0 1,36.18 239.38Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M27.27,304l-0.36,-0.85 -0.52,-0.68a2.6,2.6 0,0 0,-1 -0.67,3.32 3.32,0 0,0 -4.6,1 3.18,3.18 0,0 0,-0.4 0.88,3.84 3.84,0 0,0 0.35,3 3.72,3.72 0,0 0,2.2 1.72,3.56 3.56,0 0,0 3.94,-1.61 4.41,4.41 0,0 0,0.42 -1A3.5,3.5 0,0 0,27.27 304Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M34.5,310.07a3.57,3.57 0,0 0,-0.39 -1.39,2.53 2.53,0 0,0 -1.3,-1.11 2.76,2.76 0,0 0,-1.77 -0.14,2.88 2.88,0 0,0 -1.88,1.69 4.5,4.5 0,0 0,-0.33 1.44,2.81 2.81,0 0,0 2.82,2.84l0.43,0a2.84,2.84 0,0 0,2.43 -3.21S34.5,310.1 34.5,310.07Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M90.77,349.53c-1.81,-1.19 -3.89,-1.35 -5.82,-2.33a41.93,41.93 0,0 1,-6.9 -4.69c-4.08,-3.23 -7.88,-6.9 -12.33,-9.63S56.46,327.5 52,324.5a57.26,57.26 0,0 1,-6.81 -5.2c-1.41,-1.28 -3.09,-3.36 -5.14,-3.28a2.11,2.11 0,0 0,-1.82 1c-2.23,4.52 5.37,9.4 8.28,11.61 5,3.79 10.34,7 15.57,10.41 4.81,3.16 8.89,7.4 13.47,10.88 3.6,2.74 10.62,8.24 15.21,4.84C91.78,353.59 91.12,351.28 90.77,349.53Z"
|
||||||
|
android:fillColor="#fffdfb"/>
|
||||||
|
</vector>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -13,10 +13,10 @@
|
||||||
android:startY="74.0"
|
android:startY="74.0"
|
||||||
android:type="linear">
|
android:type="linear">
|
||||||
<item
|
<item
|
||||||
android:color="#FFF0006B"
|
android:color="@color/monerujoPink"
|
||||||
android:offset="0.0" />
|
android:offset="0.0" />
|
||||||
<item
|
<item
|
||||||
android:color="#FFFF6600"
|
android:color="@color/monerujoOrange"
|
||||||
android:offset="1.0" />
|
android:offset="1.0" />
|
||||||
</gradient>
|
</gradient>
|
||||||
</aapt:attr>
|
</aapt:attr>
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
android:startY="58.0"
|
android:startY="58.0"
|
||||||
android:type="linear">
|
android:type="linear">
|
||||||
<item
|
<item
|
||||||
android:color="#FFF0006B"
|
android:color="@color/monerujoPink"
|
||||||
android:offset="0.0" />
|
android:offset="0.0" />
|
||||||
<item
|
<item
|
||||||
android:color="#FFFF6600"
|
android:color="@color/monerujoOrange"
|
||||||
android:offset="1.0" />
|
android:offset="1.0" />
|
||||||
</gradient>
|
</gradient>
|
||||||
</aapt:attr>
|
</aapt:attr>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="rectangle">
|
||||||
<solid android:color="@color/white" />
|
<solid android:color="@color/monerujoBackground" />
|
||||||
<padding
|
<padding
|
||||||
android:bottom="8dp"
|
android:bottom="8dp"
|
||||||
android:left="8dp"
|
android:left="8dp"
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shape="rectangle">
|
|
||||||
<padding
|
|
||||||
android:bottom="8dp"
|
|
||||||
android:left="8dp"
|
|
||||||
android:right="8dp"
|
|
||||||
android:top="8dp" />
|
|
||||||
<stroke
|
|
||||||
android:width="2dp"
|
|
||||||
android:color="@color/gradientOrange" />
|
|
||||||
</shape>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shape="rectangle">
|
|
||||||
<padding
|
|
||||||
android:bottom="8dp"
|
|
||||||
android:left="8dp"
|
|
||||||
android:right="8dp"
|
|
||||||
android:top="8dp" />
|
|
||||||
<stroke
|
|
||||||
android:width="2dp"
|
|
||||||
android:color="@color/moneroGray" />
|
|
||||||
</shape>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<solid android:color="@color/gradientOrange" />
|
|
||||||
</shape>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<solid android:color="@color/moneroGray" />
|
|
||||||
</shape>
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<solid android:color="@color/tx_green" />
|
<solid android:color="@color/monerujoReceive" />
|
||||||
</shape>
|
</shape>
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
|
|
||||||
<item android:drawable="@drawable/button_default" android:state_enabled="true" />
|
|
||||||
<item android:drawable="@drawable/button_default" android:state_pressed="false" />
|
|
||||||
</selector>
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:drawable="@drawable/button_disabled" android:state_enabled="false" />
|
|
||||||
<item android:drawable="@drawable/button_green" android:state_enabled="true" />
|
<item android:drawable="@drawable/button_green" android:state_enabled="true" />
|
||||||
<item android:drawable="@drawable/button_green" android:state_pressed="false" />
|
<item android:drawable="@drawable/button_green" android:state_pressed="false" />
|
||||||
</selector>
|
</selector>
|
|
@ -6,7 +6,7 @@
|
||||||
android:shape="ring"
|
android:shape="ring"
|
||||||
android:thickness="8dp"
|
android:thickness="8dp"
|
||||||
android:useLevel="false">
|
android:useLevel="false">
|
||||||
<solid android:color="@color/gradientOrange" />
|
<solid android:color="?attr/colorSecondary" />
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
</layer-list>
|
</layer-list>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
android:shape="ring"
|
android:shape="ring"
|
||||||
android:thickness="8dp"
|
android:thickness="8dp"
|
||||||
android:useLevel="false">
|
android:useLevel="false">
|
||||||
<solid android:color="#CDD1D9" />
|
<solid android:color="?attr/colorSecondaryVariant" />
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
</layer-list>
|
</layer-list>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="rectangle">
|
||||||
<gradient
|
<gradient
|
||||||
android:angle="45"
|
android:angle="-90"
|
||||||
android:endColor="@color/gradientOrange"
|
android:endColor="@color/gradientBottom"
|
||||||
android:startColor="@color/gradientPink"
|
android:startColor="@color/gradientTop"
|
||||||
android:type="linear" />
|
android:type="linear" />
|
||||||
</shape>
|
</shape>
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="oval">
|
android:shape="oval">
|
||||||
<gradient
|
<gradient
|
||||||
android:angle="45"
|
android:angle="135"
|
||||||
android:endColor="@color/gradientOrange"
|
android:endColor="@color/gradientBottom"
|
||||||
android:startColor="@color/gradientPink"
|
android:startColor="@color/gradientTop"
|
||||||
android:type="linear" />
|
android:type="linear" />
|
||||||
</shape>
|
</shape>
|
|
@ -1,9 +1,9 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
android:viewportHeight="20.0"
|
android:viewportWidth="20.0"
|
||||||
android:viewportWidth="20.0">
|
android:viewportHeight="20.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/moneroFab"
|
android:fillColor="?colorPrimaryVariant"
|
||||||
android:pathData="M11,5L9,5L9,9L5,9L5,11L9,11L9,15L11,15L11,11L15,11L15,9L11,9L11,5L11,5ZM10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0L10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18L10,18Z" />
|
android:pathData="M11,5L9,5L9,9L5,9L5,11L9,11L9,15L11,15L11,11L15,11L15,9L11,9L11,5L11,5ZM10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0L10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18L10,18Z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportHeight="20.0"
|
android:viewportHeight="20.0"
|
||||||
android:viewportWidth="20.0">
|
android:viewportWidth="20.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/moneroWhite"
|
android:fillColor="@color/monerujoPrimary"
|
||||||
android:pathData="M11,5L9,5L9,9L5,9L5,11L9,11L9,15L11,15L11,11L15,11L15,9L11,9L11,5L11,5ZM10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0L10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18L10,18Z" />
|
android:pathData="M11,5L9,5L9,9L5,9L5,11L9,11L9,15L11,15L11,11L15,11L15,9L11,9L11,5L11,5ZM10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0L10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18L10,18Z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportHeight="24.0"
|
android:viewportHeight="24.0"
|
||||||
android:viewportWidth="24.0">
|
android:viewportWidth="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/gradientOrange"
|
android:fillColor="@color/gradientLeft"
|
||||||
android:pathData="M18.6,6.62c-1.44,0 -2.8,0.56 -3.77,1.53L12,10.66 10.48,12h0.01L7.8,14.39c-0.64,0.64 -1.49,0.99 -2.4,0.99 -1.87,0 -3.39,-1.51 -3.39,-3.38S3.53,8.62 5.4,8.62c0.91,0 1.76,0.35 2.44,1.03l1.13,1 1.51,-1.34L9.22,8.2C8.2,7.18 6.84,6.62 5.4,6.62 2.42,6.62 0,9.04 0,12s2.42,5.38 5.4,5.38c1.44,0 2.8,-0.56 3.77,-1.53l2.83,-2.5 0.01,0.01L13.52,12h-0.01l2.69,-2.39c0.64,-0.64 1.49,-0.99 2.4,-0.99 1.87,0 3.39,1.51 3.39,3.38s-1.52,3.38 -3.39,3.38c-0.9,0 -1.76,-0.35 -2.44,-1.03l-1.14,-1.01 -1.51,1.34 1.27,1.12c1.02,1.01 2.37,1.57 3.82,1.57 2.98,0 5.4,-2.41 5.4,-5.38s-2.42,-5.37 -5.4,-5.37z" />
|
android:pathData="M18.6,6.62c-1.44,0 -2.8,0.56 -3.77,1.53L12,10.66 10.48,12h0.01L7.8,14.39c-0.64,0.64 -1.49,0.99 -2.4,0.99 -1.87,0 -3.39,-1.51 -3.39,-3.38S3.53,8.62 5.4,8.62c0.91,0 1.76,0.35 2.44,1.03l1.13,1 1.51,-1.34L9.22,8.2C8.2,7.18 6.84,6.62 5.4,6.62 2.42,6.62 0,9.04 0,12s2.42,5.38 5.4,5.38c1.44,0 2.8,-0.56 3.77,-1.53l2.83,-2.5 0.01,0.01L13.52,12h-0.01l2.69,-2.39c0.64,-0.64 1.49,-0.99 2.4,-0.99 1.87,0 3.39,1.51 3.39,3.38s-1.52,3.38 -3.39,3.38c-0.9,0 -1.76,-0.35 -2.44,-1.03l-1.14,-1.01 -1.51,1.34 1.27,1.12c1.02,1.01 2.37,1.57 3.82,1.57 2.98,0 5.4,-2.41 5.4,-5.38s-2.42,-5.37 -5.4,-5.37z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportHeight="24.0"
|
android:viewportHeight="24.0"
|
||||||
android:viewportWidth="24.0">
|
android:viewportWidth="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FFffffff"
|
android:fillColor="@color/monerujoToolbarText"
|
||||||
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
|
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportHeight="74.0"
|
android:viewportHeight="74.0"
|
||||||
android:viewportWidth="74.0">
|
android:viewportWidth="74.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/gradientPink"
|
android:fillColor="@color/monerujoPink"
|
||||||
android:pathData="M21.83,29.97L16.65,35.15L33.3,51.8L70.3,14.8L65.12,9.62L33.3,41.44L21.83,29.97L21.83,29.97ZM66.6,37C66.6,53.28 53.28,66.6 37,66.6C20.72,66.6 7.4,53.28 7.4,37C7.4,20.72 20.72,7.4 37,7.4C39.96,7.4 42.55,7.77 45.14,8.51L51.06,2.59C46.62,1.11 41.81,0 37,0C16.65,0 0,16.65 0,37C0,57.35 16.65,74 37,74C57.35,74 74,57.35 74,37L66.6,37L66.6,37Z" />
|
android:pathData="M21.83,29.97L16.65,35.15L33.3,51.8L70.3,14.8L65.12,9.62L33.3,41.44L21.83,29.97L21.83,29.97ZM66.6,37C66.6,53.28 53.28,66.6 37,66.6C20.72,66.6 7.4,53.28 7.4,37C7.4,20.72 20.72,7.4 37,7.4C39.96,7.4 42.55,7.77 45.14,8.51L51.06,2.59C46.62,1.11 41.81,0 37,0C16.65,0 0,16.65 0,37C0,57.35 16.65,74 37,74C57.35,74 74,57.35 74,37L66.6,37L66.6,37Z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
android:viewportHeight="58.0"
|
android:viewportHeight="58.0"
|
||||||
android:viewportWidth="58.0">
|
android:viewportWidth="58.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/gradientPink"
|
android:fillColor="@color/monerujoPink"
|
||||||
android:pathData="M17.11,23.49L13.05,27.55L26.1,40.6L55.1,11.6L51.04,7.54L26.1,32.48L17.11,23.49L17.11,23.49ZM52.2,29C52.2,41.76 41.76,52.2 29,52.2C16.24,52.2 5.8,41.76 5.8,29C5.8,16.24 16.24,5.8 29,5.8C31.32,5.8 33.35,6.09 35.38,6.67L40.02,2.03C36.54,0.87 32.77,0 29,0C13.05,0 0,13.05 0,29C0,44.95 13.05,58 29,58C44.95,58 58,44.95 58,29L52.2,29L52.2,29Z"
|
android:pathData="M17.11,23.49L13.05,27.55L26.1,40.6L55.1,11.6L51.04,7.54L26.1,32.48L17.11,23.49L17.11,23.49ZM52.2,29C52.2,41.76 41.76,52.2 29,52.2C16.24,52.2 5.8,41.76 5.8,29C5.8,16.24 16.24,5.8 29,5.8C31.32,5.8 33.35,6.09 35.38,6.67L40.02,2.03C36.54,0.87 32.77,0 29,0C13.05,0 0,13.05 0,29C0,44.95 13.05,58 29,58C44.95,58 58,44.95 58,29L52.2,29L52.2,29Z"
|
||||||
android:strokeColor="#00000000"
|
android:strokeColor="#00000000"
|
||||||
android:strokeWidth="1" />
|
android:strokeWidth="1" />
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportHeight="24.0"
|
android:viewportHeight="24.0"
|
||||||
android:viewportWidth="24.0">
|
android:viewportWidth="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/moneroFab"
|
android:fillColor="@color/monerujoPrimary"
|
||||||
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
|
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24.0"
|
||||||
android:viewportHeight="24.0">
|
android:viewportHeight="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FFffffff"
|
android:fillColor="@color/monerujoToolbarText"
|
||||||
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
|
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24.0"
|
||||||
android:viewportHeight="24.0">
|
android:viewportHeight="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FFffffff"
|
android:fillColor="@color/btn_color_selector"
|
||||||
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
|
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
|
||||||
</vector>
|
</vector>
|
|
@ -1,9 +0,0 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportHeight="24.0"
|
|
||||||
android:viewportWidth="24.0">
|
|
||||||
<path
|
|
||||||
android:fillColor="#FF000000"
|
|
||||||
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z" />
|
|
||||||
</vector>
|
|
|
@ -1,9 +0,0 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24.0"
|
|
||||||
android:viewportHeight="24.0">
|
|
||||||
<path
|
|
||||||
android:fillColor="@color/moneroGray"
|
|
||||||
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
|
|
||||||
</vector>
|
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24.0"
|
||||||
android:viewportHeight="24.0">
|
android:viewportHeight="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/gradientOrange"
|
android:fillColor="@color/btn_color_selector"
|
||||||
android:pathData="M19,2h-4.18C14.4,0.84 13.3,0 12,0c-1.3,0 -2.4,0.84 -2.82,2L5,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM12,2c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM19,20L5,20L5,4h2v3h10L17,4h2v16z" />
|
android:pathData="M19,2h-4.18C14.4,0.84 13.3,0 12,0c-1.3,0 -2.4,0.84 -2.82,2L5,2c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,4c0,-1.1 -0.9,-2 -2,-2zM12,2c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM19,20L5,20L5,4h2v3h10L17,4h2v16z" />
|
||||||
</vector>
|
</vector>
|
|
@ -7,7 +7,7 @@
|
||||||
android:translateX="0.000000"
|
android:translateX="0.000000"
|
||||||
android:translateY="+7.000000">
|
android:translateY="+7.000000">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#417505"
|
android:fillColor="@color/monerujoGreen"
|
||||||
android:pathData="M17.6,1.4L16.2,0L9.9,6.3L11.3,7.7L17.6,1.4L17.6,1.4ZM21.8,0L11.3,10.6L7.1,6.4L5.7,7.8L11.3,13.4L23.3,1.4L21.8,0L21.8,0ZM0,7.8L5.6,13.4L7,12L1.4,6.4L0,7.8L0,7.8Z" />
|
android:pathData="M17.6,1.4L16.2,0L9.9,6.3L11.3,7.7L17.6,1.4L17.6,1.4ZM21.8,0L11.3,10.6L7.1,6.4L5.7,7.8L11.3,13.4L23.3,1.4L21.8,0L21.8,0ZM0,7.8L5.6,13.4L7,12L1.4,6.4L0,7.8L0,7.8Z" />
|
||||||
</group>
|
</group>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,27 +1,12 @@
|
||||||
<!--
|
|
||||||
~ Copyright (C) 2015 The Android Open Source Project
|
|
||||||
~
|
|
||||||
~ 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
|
|
||||||
-->
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="36dp"
|
android:width="36dp"
|
||||||
android:height="36dp"
|
android:height="36dp"
|
||||||
android:viewportWidth="36"
|
android:viewportWidth="36"
|
||||||
android:viewportHeight="36">
|
android:viewportHeight="36">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#f4511e"
|
android:fillColor="?colorError"
|
||||||
android:pathData="M18,18m -18, 0a 18, 18 0 1, 0 36, 0a 18, 18 0 1, 0 -36, 0" />
|
android:pathData="M18,18m -18, 0a 18, 18 0 1, 0 36, 0a 18, 18 0 1, 0 -36, 0" />
|
||||||
<path
|
<path
|
||||||
android:fillColor="#ffffffff"
|
android:fillColor="?colorOnError"
|
||||||
android:pathData="m16.665,24.915001l2.67,0l0,2.67l-2.67,0l0,-2.67zm0,-16.5l2.67,0l0,12.67l-2.67,0l0,-12.67z" />
|
android:pathData="m16.665,24.915001l2.67,0l0,2.67l-2.67,0l0,-2.67zm0,-16.5l2.67,0l0,12.67l-2.67,0l0,-12.67z" />
|
||||||
</vector>
|
</vector>
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24.0"
|
||||||
android:viewportHeight="24.0">
|
android:viewportHeight="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="@color/gradientPink"
|
android:fillColor="@color/gradientRight"
|
||||||
android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
|
android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue