mirror of
https://github.com/m2049r/xmrwallet
synced 2025-09-05 09:58:42 +02:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b11357f379 | ||
![]() |
eba0156a6d | ||
![]() |
bf64d8bd89 | ||
![]() |
2d74281b31 | ||
![]() |
668cefb357 | ||
![]() |
1f5061df38 | ||
![]() |
51445f5941 | ||
![]() |
8c01ec36e8 | ||
![]() |
3cf84c599d | ||
![]() |
ead8564688 | ||
![]() |
b71b3badd8 | ||
![]() |
5ad46e2f54 | ||
![]() |
9d6895b60f |
2
app/.gitignore
vendored
2
app/.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
.externalNativeBuild
|
||||
build
|
||||
app.iml
|
||||
prod
|
||||
alpha
|
||||
|
@@ -7,8 +7,8 @@ android {
|
||||
applicationId "com.m2049r.xmrwallet"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 27
|
||||
versionCode 131
|
||||
versionName "1.8.1 'Bullets And Octane-Pirates'"
|
||||
versionCode 134
|
||||
versionName "1.8.4 'Bullets And Octane-Pirates'"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
|
BIN
app/src/alpha/ic_launcher-web.png
Normal file
BIN
app/src/alpha/ic_launcher-web.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 244 KiB |
BIN
app/src/alpha/res/mipmap-hdpi/ic_launcher.png
Normal file
BIN
app/src/alpha/res/mipmap-hdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
BIN
app/src/alpha/res/mipmap-mdpi/ic_launcher.png
Normal file
BIN
app/src/alpha/res/mipmap-mdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
BIN
app/src/alpha/res/mipmap-xhdpi/ic_launcher.png
Normal file
BIN
app/src/alpha/res/mipmap-xhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
app/src/alpha/res/mipmap-xxhdpi/ic_launcher.png
Normal file
BIN
app/src/alpha/res/mipmap-xxhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
BIN
app/src/alpha/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
BIN
app/src/alpha/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
@@ -39,6 +39,7 @@ import com.m2049r.xmrwallet.R;
|
||||
import com.m2049r.xmrwallet.data.BarcodeData;
|
||||
import com.m2049r.xmrwallet.data.TxData;
|
||||
import com.m2049r.xmrwallet.data.TxDataBtc;
|
||||
import com.m2049r.xmrwallet.model.PendingTransaction;
|
||||
import com.m2049r.xmrwallet.model.Wallet;
|
||||
import com.m2049r.xmrwallet.util.BitcoinAddressValidator;
|
||||
import com.m2049r.xmrwallet.util.Helper;
|
||||
@@ -350,6 +351,8 @@ public class SendAddressWizardFragment extends SendWizardFragment {
|
||||
txData.setPaymentId(etPaymentId.getEditText().getText().toString());
|
||||
}
|
||||
txData.setUserNotes(new UserNotes(etNotes.getEditText().getText().toString()));
|
||||
txData.setPriority(PendingTransaction.Priority.Priority_Default);
|
||||
txData.setMixin(SendFragment.MIXIN);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@@ -58,11 +58,12 @@ import timber.log.Timber;
|
||||
public class SendFragment extends Fragment
|
||||
implements SendAddressWizardFragment.Listener,
|
||||
SendAmountWizardFragment.Listener,
|
||||
SendSettingsWizardFragment.Listener,
|
||||
SendConfirmWizardFragment.Listener,
|
||||
SendSuccessWizardFragment.Listener,
|
||||
OnBackPressedListener, OnUriScannedListener {
|
||||
|
||||
final static public int MIXIN = 10;
|
||||
|
||||
private Listener activityCallback;
|
||||
|
||||
public interface Listener {
|
||||
@@ -301,10 +302,9 @@ public class SendFragment extends Fragment
|
||||
public class SpendPagerAdapter extends FragmentStatePagerAdapter {
|
||||
private static final int POS_ADDRESS = 0;
|
||||
private static final int POS_AMOUNT = 1;
|
||||
private static final int POS_SETTINGS = 2;
|
||||
private static final int POS_CONFIRM = 3;
|
||||
private static final int POS_SUCCESS = 4;
|
||||
private int numPages = 4;
|
||||
private static final int POS_CONFIRM = 2;
|
||||
private static final int POS_SUCCESS = 3;
|
||||
private int numPages = 3;
|
||||
|
||||
SparseArray<WeakReference<SendWizardFragment>> myFragments = new SparseArray<>();
|
||||
|
||||
@@ -355,8 +355,6 @@ public class SendFragment extends Fragment
|
||||
return SendAddressWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_AMOUNT:
|
||||
return SendAmountWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_SETTINGS:
|
||||
return SendSettingsWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_CONFIRM:
|
||||
return SendConfirmWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_SUCCESS:
|
||||
@@ -370,8 +368,6 @@ public class SendFragment extends Fragment
|
||||
return SendAddressWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_AMOUNT:
|
||||
return SendBtcAmountWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_SETTINGS:
|
||||
return SendSettingsWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_CONFIRM:
|
||||
return SendBtcConfirmWizardFragment.newInstance(SendFragment.this);
|
||||
case POS_SUCCESS:
|
||||
@@ -393,8 +389,6 @@ public class SendFragment extends Fragment
|
||||
return getString(R.string.send_address_title);
|
||||
case POS_AMOUNT:
|
||||
return getString(R.string.send_amount_title);
|
||||
case POS_SETTINGS:
|
||||
return getString(R.string.send_settings_title);
|
||||
case POS_CONFIRM:
|
||||
return getString(R.string.send_confirm_title);
|
||||
case POS_SUCCESS:
|
||||
@@ -407,7 +401,8 @@ public class SendFragment extends Fragment
|
||||
@Override
|
||||
public int getItemPosition(Object object) {
|
||||
Timber.d("getItemPosition %s", String.valueOf(object));
|
||||
if ((object instanceof SendAddressWizardFragment) || (object instanceof SendSettingsWizardFragment)) {
|
||||
if (object instanceof SendAddressWizardFragment) {
|
||||
// keep these pages
|
||||
return POSITION_UNCHANGED;
|
||||
} else {
|
||||
return POSITION_NONE;
|
||||
|
@@ -1,101 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2017 m2049r
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.m2049r.xmrwallet.fragment.send;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.m2049r.xmrwallet.R;
|
||||
import com.m2049r.xmrwallet.data.TxData;
|
||||
import com.m2049r.xmrwallet.model.PendingTransaction;
|
||||
import com.m2049r.xmrwallet.util.Helper;
|
||||
import com.m2049r.xmrwallet.util.UserNotes;
|
||||
|
||||
import timber.log.Timber;
|
||||
|
||||
public class SendSettingsWizardFragment extends SendWizardFragment {
|
||||
final static public int MIXIN = 10;
|
||||
|
||||
public static SendSettingsWizardFragment newInstance(Listener listener) {
|
||||
SendSettingsWizardFragment instance = new SendSettingsWizardFragment();
|
||||
instance.setSendListener(listener);
|
||||
return instance;
|
||||
}
|
||||
|
||||
Listener sendListener;
|
||||
|
||||
public SendSettingsWizardFragment setSendListener(Listener listener) {
|
||||
this.sendListener = listener;
|
||||
return this;
|
||||
}
|
||||
|
||||
interface Listener {
|
||||
TxData getTxData();
|
||||
}
|
||||
|
||||
final static PendingTransaction.Priority Priorities[] =
|
||||
{PendingTransaction.Priority.Priority_Default,
|
||||
PendingTransaction.Priority.Priority_Low,
|
||||
PendingTransaction.Priority.Priority_Medium,
|
||||
PendingTransaction.Priority.Priority_High}; // must match the layout XML
|
||||
|
||||
private Spinner sPriority;
|
||||
private EditText etDummy;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
Timber.d("onCreateView() %s", (String.valueOf(savedInstanceState)));
|
||||
|
||||
View view = inflater.inflate(
|
||||
R.layout.fragment_send_settings, container, false);
|
||||
|
||||
sPriority = (Spinner) view.findViewById(R.id.sPriority);
|
||||
|
||||
etDummy = (EditText) view.findViewById(R.id.etDummy);
|
||||
etDummy.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onValidateFields() {
|
||||
if (sendListener != null) {
|
||||
TxData txData = sendListener.getTxData();
|
||||
txData.setPriority(Priorities[sPriority.getSelectedItemPosition()]);
|
||||
txData.setMixin(MIXIN);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResumeFragment() {
|
||||
super.onResumeFragment();
|
||||
Timber.d("onResumeFragment()");
|
||||
Helper.hideKeyboard(getActivity());
|
||||
etDummy.requestFocus();
|
||||
}
|
||||
}
|
@@ -178,7 +178,7 @@ public class WalletManager {
|
||||
public native boolean verifyWalletPassword(String keys_file_name, String password, boolean watch_only);
|
||||
|
||||
public boolean verifyWalletPasswordOnly(String keys_file_name, String password) {
|
||||
return queryWalletDevice(keys_file_name, password) != Wallet.Device.Device_Undefined;
|
||||
return queryWalletDeviceJ(keys_file_name, password) >= 0;
|
||||
}
|
||||
|
||||
public Wallet.Device queryWalletDevice(String keys_file_name, String password) {
|
||||
|
@@ -43,6 +43,7 @@ public class Notice {
|
||||
private static final String NOTICE_SHOW_XMRTO_ENABLED_SEND = "notice_xmrto_enabled_send";
|
||||
private static final String NOTICE_SHOW_CRAZYPASS = "notice_crazypass_enabled_login";
|
||||
private static final String NOTICE_SHOW_LEDGER = "notice_ledger_enabled_login";
|
||||
private static final String NOTICE_SHOW_V9 = "notice_v9_login";
|
||||
|
||||
private static void init() {
|
||||
synchronized (Notice.class) {
|
||||
@@ -61,9 +62,9 @@ public class Notice {
|
||||
1)
|
||||
);
|
||||
notices.add(
|
||||
new Notice(NOTICE_SHOW_CRAZYPASS,
|
||||
R.string.info_crazypass_enabled,
|
||||
R.string.help_details,
|
||||
new Notice(NOTICE_SHOW_V9,
|
||||
R.string.info_v9,
|
||||
R.string.help_v9,
|
||||
2)
|
||||
);
|
||||
notices.add(
|
||||
|
@@ -95,6 +95,7 @@ public class RestoreHeight {
|
||||
blockheight.put("2018-07-01", 1606715L);
|
||||
blockheight.put("2018-08-01", 1629017L);
|
||||
blockheight.put("2018-09-01", 1651347L);
|
||||
blockheight.put("2018-10-01", 1673031L);
|
||||
}
|
||||
|
||||
public long getHeight(String date) {
|
||||
|
@@ -53,7 +53,7 @@
|
||||
app:activeDot="0"
|
||||
app:dotSize="12dp"
|
||||
app:inactiveColor="@color/dotGray"
|
||||
app:numberDots="4" />
|
||||
app:numberDots="3" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/bNext"
|
||||
|
@@ -1,51 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/etDummy"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16sp"
|
||||
android:layout_marginTop="16sp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
style="@style/MoneroLabel.Caps.Gray.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|end"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="@string/label_send_settings_advanced"
|
||||
android:textAlignment="textEnd" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/sPriority"
|
||||
style="@style/MoneroSpinner"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:entries="@array/priority"
|
||||
android:textAlignment="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
style="@style/MoneroFab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="start"
|
||||
android:drawablePadding="8dp"
|
||||
android:drawableStart="@drawable/ic_info_outline_gray_24dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/info_send_prio_fees" />
|
||||
|
||||
</LinearLayout>
|
@@ -235,7 +235,6 @@
|
||||
<string name="send_available">Verfügbar: %1$s XMR</string>
|
||||
<string name="send_address_title">Adresse</string>
|
||||
<string name="send_amount_title">Betrag</string>
|
||||
<string name="send_settings_title">Einstellungen</string>
|
||||
<string name="send_confirm_title">Bestätigen</string>
|
||||
<string name="send_success_title">Fertig</string>
|
||||
|
||||
|
@@ -209,7 +209,6 @@
|
||||
<string name="send_available">Υπόλοιπο: %1$s XMR</string>
|
||||
<string name="send_address_title">Διεύθυνση</string>
|
||||
<string name="send_amount_title">Ποσό</string>
|
||||
<string name="send_settings_title">Ρυθμίσεις</string>
|
||||
<string name="send_confirm_title">Επιβεβαίωση</string>
|
||||
<string name="send_success_title">Έγινε</string>
|
||||
|
||||
|
@@ -174,7 +174,6 @@
|
||||
<string name="send_available">Fondos disponibles: %1$s XMR</string>
|
||||
<string name="send_address_title">Dirección</string>
|
||||
<string name="send_amount_title">Monto</string>
|
||||
<string name="send_settings_title">Ajustes</string>
|
||||
<string name="send_confirm_title">Aprobar</string>
|
||||
<string name="send_success_title">Hecho</string>
|
||||
|
||||
|
@@ -237,7 +237,6 @@
|
||||
<string name="send_available">Solde : %1$s XMR</string>
|
||||
<string name="send_address_title">Adresse</string>
|
||||
<string name="send_amount_title">Montant</string>
|
||||
<string name="send_settings_title">Paramètres</string>
|
||||
<string name="send_confirm_title">Confirmation</string>
|
||||
<string name="send_success_title">Terminé</string>
|
||||
|
||||
|
@@ -235,7 +235,6 @@
|
||||
<string name="send_available">Egyenleg: %1$s XMR</string>
|
||||
<string name="send_address_title">Cím</string>
|
||||
<string name="send_amount_title">Mennyiség</string>
|
||||
<string name="send_settings_title">Beállítások</string>
|
||||
<string name="send_confirm_title">Megerősítés</string>
|
||||
<string name="send_success_title">Kész</string>
|
||||
|
||||
|
@@ -236,7 +236,6 @@
|
||||
<string name="send_available">Saldo: %1$s XMR</string>
|
||||
<string name="send_address_title">Indirizzo</string>
|
||||
<string name="send_amount_title">Ammontare</string>
|
||||
<string name="send_settings_title">Impostazioni</string>
|
||||
<string name="send_confirm_title">Conferma</string>
|
||||
<string name="send_success_title">Fatto</string>
|
||||
|
||||
|
@@ -234,7 +234,6 @@
|
||||
<string name="send_available">Saldo: %1$s XMR</string>
|
||||
<string name="send_address_title">Adresse</string>
|
||||
<string name="send_amount_title">Mengde</string>
|
||||
<string name="send_settings_title">Innstillinger</string>
|
||||
<string name="send_confirm_title">Bekreft</string>
|
||||
<string name="send_success_title">Ferdig</string>
|
||||
|
||||
|
@@ -233,7 +233,6 @@
|
||||
<string name="send_available">Saldo: %1$s XMR</string>
|
||||
<string name="send_address_title">Adres</string>
|
||||
<string name="send_amount_title">Bedrag</string>
|
||||
<string name="send_settings_title">Instellingen</string>
|
||||
<string name="send_confirm_title">Bevestigen</string>
|
||||
<string name="send_success_title">Klaar</string>
|
||||
|
||||
@@ -352,5 +351,5 @@
|
||||
<string name="send_address_resolve_openalias">OpenAlias omzetten…</string>
|
||||
<string name="send_address_no_dnssec">OpenAlias zonder DNSSEC - adres kan nep zijn</string>
|
||||
|
||||
<string name="status_wallet_connect_wrongversion">Node version incompatible - please upgrade!</string>
|
||||
<string name="status_wallet_connect_wrongversion">Incompatibele versie van node. Je moet upgraden!</string>
|
||||
</resources>
|
||||
|
@@ -234,7 +234,6 @@
|
||||
<string name="send_available">Saldo: %1$s XMR</string>
|
||||
<string name="send_address_title">Endereço</string>
|
||||
<string name="send_amount_title">Quantidade</string>
|
||||
<string name="send_settings_title">Definições</string>
|
||||
<string name="send_confirm_title">Confirmar</string>
|
||||
<string name="send_success_title">Feito</string>
|
||||
|
||||
|
@@ -209,7 +209,6 @@
|
||||
<string name="send_available">Balanță: %1$s XMR</string>
|
||||
<string name="send_address_title">Adresă</string>
|
||||
<string name="send_amount_title">Sumă</string>
|
||||
<string name="send_settings_title">Setări</string>
|
||||
<string name="send_confirm_title">Confirmă</string>
|
||||
<string name="send_success_title">Gata</string>
|
||||
|
||||
|
@@ -236,7 +236,6 @@
|
||||
<string name="send_available">Баланс: %1$s XMR</string>
|
||||
<string name="send_address_title">Адрес</string>
|
||||
<string name="send_amount_title">Сумма</string>
|
||||
<string name="send_settings_title">Настройки</string>
|
||||
<string name="send_confirm_title">Подтверждение</string>
|
||||
<string name="send_success_title">Готово</string>
|
||||
|
||||
|
@@ -233,7 +233,6 @@
|
||||
<string name="send_available">Zostatok: %1$s XMR</string>
|
||||
<string name="send_address_title">Adresa</string>
|
||||
<string name="send_amount_title">Čiastka</string>
|
||||
<string name="send_settings_title">Možnosti</string>
|
||||
<string name="send_confirm_title">Potvrdiť</string>
|
||||
<string name="send_success_title">Hotovo</string>
|
||||
|
||||
|
@@ -215,7 +215,6 @@
|
||||
<string name="send_available">Saldo: %1$s XMR</string>
|
||||
<string name="send_address_title">Adress</string>
|
||||
<string name="send_amount_title">Belopp</string>
|
||||
<string name="send_settings_title">Inställningar</string>
|
||||
<string name="send_confirm_title">Bekräfta</string>
|
||||
<string name="send_success_title">Färdig</string>
|
||||
|
||||
|
@@ -232,7 +232,6 @@
|
||||
<string name="send_available">余额: %1$s XMR</string>
|
||||
<string name="send_address_title">地址</string>
|
||||
<string name="send_amount_title">金额</string>
|
||||
<string name="send_settings_title">设定</string>
|
||||
<string name="send_confirm_title">确认</string>
|
||||
<string name="send_success_title">完成</string>
|
||||
|
||||
|
@@ -233,7 +233,6 @@
|
||||
<string name="send_available">餘額:%1$s XMR</string>
|
||||
<string name="send_address_title">地址</string>
|
||||
<string name="send_amount_title">金額</string>
|
||||
<string name="send_settings_title">設定</string>
|
||||
<string name="send_confirm_title">確認</string>
|
||||
<string name="send_success_title">完成</string>
|
||||
|
||||
@@ -353,5 +352,5 @@
|
||||
<string name="send_address_no_dnssec">這個 OpenAlias 沒有使用 DNSSEC - 地址有被欺騙的風險</string>
|
||||
<string name="send_address_hint">收款者的 XMR/BTC 地址或 OpenAlias</string>
|
||||
|
||||
<string name="status_wallet_connect_wrongversion">Node version incompatible - please upgrade!</string>
|
||||
<string name="status_wallet_connect_wrongversion">節點版本不相容 - 請盡速更新!</string>
|
||||
</resources>
|
||||
|
@@ -244,4 +244,14 @@
|
||||
<p>Once the countdown reaches zero, you need to get a new quote from XMR.TO by going back to the
|
||||
previous step and then coming back to the \"Confirm\" screen.</p>
|
||||
]]></string>
|
||||
|
||||
<string name="help_v9" translatable="false"><![CDATA[
|
||||
<h1>October 2018 Network Upgrade</h1>
|
||||
<p>On or around 18th October 2018, the Monero Network will be upgraded. Clients and Servers
|
||||
(Nodes) need to be upgraded simultaneously as old & new versions are not compatible.</p>
|
||||
<p>You are running a new V9 client. You need to run or find a V9 node to connect to.</p>
|
||||
<p>Check
|
||||
https://www.reddit.com/r/Monerujo/comments/9n70ys/does_anyone_have_a_list_of_updated_nodes/
|
||||
for more info & support.</p>
|
||||
]]></string>
|
||||
</resources>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user