diff --git a/app/build.gradle b/app/build.gradle index 4f5b7dee..71b0aff6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,15 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 30 + compileSdkVersion 31 buildToolsVersion '30.0.3' ndkVersion '17.2.4988734' defaultConfig { applicationId "com.m2049r.xmrwallet" minSdkVersion 21 - targetSdkVersion 30 - versionCode 1301 - versionName "2.3.1 'Doménikos'" + targetSdkVersion 31 + versionCode 1303 + versionName "2.3.3 'Baldaŭ'" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { @@ -120,38 +120,39 @@ static def getId(name) { } dependencies { - implementation 'androidx.core:core:1.6.0' - implementation 'androidx.appcompat:appcompat:1.3.1' - implementation 'com.google.android.material:material:1.4.0' + implementation 'androidx.core:core:1.7.0' + implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01' - implementation 'androidx.constraintlayout:constraintlayout:2.1.1' + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + implementation 'androidx.preference:preference:1.2.0' + + implementation 'com.google.android.material:material:1.5.0' implementation 'me.dm7.barcodescanner:zxing:1.9.8' - implementation "com.squareup.okhttp3:okhttp:4.9.0" - implementation "io.github.rburgst:okhttp-digest:2.5" - implementation "com.jakewharton.timber:timber:4.7.1" + implementation "com.squareup.okhttp3:okhttp:4.9.3" + implementation "io.github.rburgst:okhttp-digest:2.6" + implementation "com.jakewharton.timber:timber:5.0.1" implementation 'info.guardianproject.netcipher:netcipher:2.1.0' //implementation 'info.guardianproject.netcipher:netcipher-okhttp3:2.1.0' implementation fileTree(dir: 'libs/classes', include: ['*.jar']) - implementation 'com.nulab-inc:zxcvbn:1.3.0' + implementation 'com.nulab-inc:zxcvbn:1.5.2' implementation 'dnsjava:dnsjava:2.1.9' implementation 'org.jitsi:dnssecjava:1.2.0' - implementation 'org.slf4j:slf4j-nop:1.7.30' + implementation 'org.slf4j:slf4j-nop:1.7.36' implementation 'com.github.brnunes:swipeablerecyclerview:1.0.2' //noinspection GradleDependency - testImplementation "junit:junit:$rootProject.ext.junitVersion" - testImplementation "org.mockito:mockito-all:$rootProject.ext.mockitoVersion" - testImplementation "com.squareup.okhttp3:mockwebserver:4.9.0" - testImplementation 'org.json:json:20180813' - testImplementation 'net.jodah:concurrentunit:0.4.4' + testImplementation "junit:junit:4.13.2" + testImplementation "org.mockito:mockito-all:1.10.19" + testImplementation "com.squareup.okhttp3:mockwebserver:4.9.3" + testImplementation 'org.json:json:20211205' + testImplementation 'net.jodah:concurrentunit:0.4.6' - compileOnly 'org.projectlombok:lombok:1.18.16' - annotationProcessor 'org.projectlombok:lombok:1.18.16' + compileOnly 'org.projectlombok:lombok:1.18.22' + annotationProcessor 'org.projectlombok:lombok:1.18.22' } - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 017212ec..6056bba3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,6 @@ - @@ -36,15 +35,17 @@ android:label="@string/app_name" android:preserveLegacyExternalStorage="true" android:supportsRtl="true" - android:theme="@style/MyMaterialTheme" + android:theme="@style/MyMaterialThemeClassic" android:usesCleartextTraffic="true"> + @@ -56,24 +57,25 @@ android:screenOrientation="behind" /> - + - + @@ -106,4 +108,5 @@ android:resource="@xml/filepaths" /> - + + \ No newline at end of file diff --git a/app/src/main/java/com/m2049r/xmrwallet/BaseActivity.java b/app/src/main/java/com/m2049r/xmrwallet/BaseActivity.java index b72c35bc..1f1f9b19 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/BaseActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/BaseActivity.java @@ -27,6 +27,7 @@ import android.nfc.NfcAdapter; import android.nfc.Tag; import android.nfc.tech.Ndef; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -180,7 +181,7 @@ public class BaseActivity extends SecureActivity return; nfcPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), - 0); + Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0); } private void processNfcIntent(Intent intent) { diff --git a/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java b/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java index 42fe137b..6370e99d 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java @@ -36,7 +36,6 @@ import android.view.WindowManager; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.LinearLayout; -import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; @@ -58,7 +57,6 @@ import com.m2049r.xmrwallet.widget.Toolbar; import java.io.File; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Objects; import timber.log.Timber; @@ -299,10 +297,10 @@ public class GenerateFragment extends Fragment { if (etSeedOffset.getVisibility() == View.VISIBLE) { etSeedOffset.getEditText().getText().clear(); etSeedOffset.setVisibility(View.GONE); - bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_baseline_keyboard_arrow_down_24, 0, 0, 0); + bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_keyboard_arrow_down, 0, 0, 0); } else { etSeedOffset.setVisibility(View.VISIBLE); - bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_baseline_keyboard_arrow_up_24, 0, 0, 0); + bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_keyboard_arrow_up, 0, 0, 0); etSeedOffset.requestFocusFromTouch(); } } diff --git a/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java b/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java index 368317cb..cb40b843 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java @@ -46,7 +46,6 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import com.google.android.material.progressindicator.CircularProgressIndicator; import com.google.android.material.switchmaterial.SwitchMaterial; import com.google.android.material.textfield.TextInputLayout; import com.m2049r.xmrwallet.ledger.Ledger; @@ -200,10 +199,10 @@ public class GenerateReviewFragment extends Fragment { void toggleAdvancedInfo() { if (llAdvancedInfo.getVisibility() == View.VISIBLE) { llAdvancedInfo.setVisibility(View.GONE); - bAdvancedInfo.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_baseline_keyboard_arrow_down_24, 0, 0, 0); + bAdvancedInfo.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_keyboard_arrow_down, 0, 0, 0); } else { llAdvancedInfo.setVisibility(View.VISIBLE); - bAdvancedInfo.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_baseline_keyboard_arrow_up_24, 0, 0, 0); + bAdvancedInfo.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_keyboard_arrow_up, 0, 0, 0); scrollview.post(() -> scrollview.fullScroll(ScrollView.FOCUS_DOWN)); } } @@ -212,10 +211,10 @@ public class GenerateReviewFragment extends Fragment { if (etSeedOffset.getVisibility() == View.VISIBLE) { etSeedOffset.getEditText().getText().clear(); etSeedOffset.setVisibility(View.GONE); - bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_baseline_keyboard_arrow_down_24, 0, 0, 0); + bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_keyboard_arrow_down, 0, 0, 0); } else { etSeedOffset.setVisibility(View.VISIBLE); - bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_baseline_keyboard_arrow_up_24, 0, 0, 0); + bSeedOffset.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_keyboard_arrow_up, 0, 0, 0); etSeedOffset.requestFocusFromTouch(); } } diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java index 0b630175..418dfb96 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java @@ -26,6 +26,7 @@ import android.content.SharedPreferences; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -39,7 +40,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; 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; @@ -49,24 +49,19 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.m2049r.xmrwallet.data.DefaultNodes; import com.m2049r.xmrwallet.data.Node; import com.m2049r.xmrwallet.data.NodeInfo; -import com.m2049r.xmrwallet.dialog.AboutFragment; import com.m2049r.xmrwallet.dialog.CreditsFragment; import com.m2049r.xmrwallet.dialog.HelpFragment; -import com.m2049r.xmrwallet.dialog.PrivacyFragment; import com.m2049r.xmrwallet.ledger.Ledger; import com.m2049r.xmrwallet.ledger.LedgerProgressDialog; import com.m2049r.xmrwallet.model.NetworkType; import com.m2049r.xmrwallet.model.Wallet; import com.m2049r.xmrwallet.model.WalletManager; import com.m2049r.xmrwallet.service.WalletService; -import com.m2049r.xmrwallet.util.DayNightMode; import com.m2049r.xmrwallet.util.Helper; import com.m2049r.xmrwallet.util.KeyStoreHelper; import com.m2049r.xmrwallet.util.LegacyStorageHelper; -import com.m2049r.xmrwallet.util.LocaleHelper; import com.m2049r.xmrwallet.util.MoneroThreadPoolExecutor; import com.m2049r.xmrwallet.util.NetCipherHelper; -import com.m2049r.xmrwallet.util.NightmodeHelper; import com.m2049r.xmrwallet.util.ThemeHelper; import com.m2049r.xmrwallet.util.ZipBackup; import com.m2049r.xmrwallet.util.ZipRestore; @@ -77,12 +72,8 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; -import java.util.Locale; import java.util.Map; import java.util.Set; @@ -90,7 +81,8 @@ import timber.log.Timber; public class LoginActivity extends BaseActivity implements LoginFragment.Listener, GenerateFragment.Listener, - GenerateReviewFragment.Listener, GenerateReviewFragment.AcceptListener, NodeFragment.Listener { + GenerateReviewFragment.Listener, GenerateReviewFragment.AcceptListener, + NodeFragment.Listener, SettingsFragment.Listener { private static final String GENERATE_STACK = "gen"; private static final String NODES_PREFS_NAME = "nodes"; @@ -293,6 +285,7 @@ public class LoginActivity extends BaseActivity @Override protected void onCreate(Bundle savedInstanceState) { Timber.d("onCreate()"); + ThemeHelper.setPreferred(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); @@ -308,8 +301,8 @@ public class LoginActivity extends BaseActivity case Toolbar.BUTTON_CLOSE: finish(); break; - case Toolbar.BUTTON_CREDITS: - CreditsFragment.display(getSupportFragmentManager()); + case Toolbar.BUTTON_SETTINGS: + startSettingsFragment(); break; case Toolbar.BUTTON_NONE: break; @@ -785,6 +778,11 @@ public class LoginActivity extends BaseActivity Timber.d("NodeFragment placed"); } + void startSettingsFragment() { + replaceFragment(new SettingsFragment(), null, null); + Timber.d("SettingsFragment placed"); + } + void replaceFragment(Fragment newFragment, String stackName, Bundle extras) { if (extras != null) { newFragment.setArguments(extras); @@ -1089,61 +1087,6 @@ public class LoginActivity extends BaseActivity } } - public void onChangeLocale() { - final ArrayList availableLocales = LocaleHelper.getAvailableLocales(LoginActivity.this); - Collections.sort(availableLocales, (locale1, locale2) -> { - String localeString1 = LocaleHelper.getDisplayName(locale1, true); - String localeString2 = LocaleHelper.getDisplayName(locale2, true); - return localeString1.compareTo(localeString2); - }); - - String[] localeDisplayNames = new String[1 + availableLocales.size()]; - localeDisplayNames[0] = getString(R.string.language_system_default); - for (int i = 1; i < localeDisplayNames.length; i++) { - localeDisplayNames[i] = LocaleHelper.getDisplayName(availableLocales.get(i - 1), true); - } - - int currentLocaleIndex = 0; - String currentLocaleTag = LocaleHelper.getPreferredLanguageTag(LoginActivity.this); - if (!currentLocaleTag.isEmpty()) { - Locale currentLocale = Locale.forLanguageTag(currentLocaleTag); - String currentLocaleName = LocaleHelper.getDisplayName(currentLocale, true); - currentLocaleIndex = Arrays.asList(localeDisplayNames).indexOf(currentLocaleName); - if (currentLocaleIndex < 0) currentLocaleIndex = 0; - } - - AlertDialog.Builder builder = new MaterialAlertDialogBuilder(LoginActivity.this); - builder.setTitle(getString(R.string.menu_language)); - builder.setSingleChoiceItems(localeDisplayNames, currentLocaleIndex, (dialog, i) -> { - dialog.dismiss(); - - LocaleHelper.setAndSaveLocale(this, - (i == 0) ? "" : availableLocales.get(i - 1).toLanguageTag()); - 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(); - } - @Override public void onBackPressed() { Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container); @@ -1192,9 +1135,6 @@ public class LoginActivity extends BaseActivity } else if (id == R.id.action_details_changepw) { onWalletChangePassword(); return true; - } else if (id == R.id.action_license_info) { - AboutFragment.display(getSupportFragmentManager()); - return true; } else if (id == R.id.action_help_list) { HelpFragment.display(getSupportFragmentManager(), R.string.help_list); return true; @@ -1208,18 +1148,6 @@ public class LoginActivity extends BaseActivity ((NodeFragment) f).restoreDefaultNodes(); } return true; - } else if (id == R.id.action_privacy_policy) { - PrivacyFragment.display(getSupportFragmentManager()); - return true; - } else if (id == R.id.action_language) { - onChangeLocale(); - return true; - } else if (id == R.id.action_theme) { - onChangeTheme(); - return true; - } else if (id == R.id.action_restore) { - onWalletRestore(); - return true; } else if (id == R.id.action_ledger_seed) { Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container); if (f instanceof GenerateFragment) { @@ -1333,7 +1261,8 @@ public class LoginActivity extends BaseActivity registerReceiver(usbPermissionReceiver, new IntentFilter(ACTION_USB_PERMISSION)); usbManager.requestPermission(device, PendingIntent.getBroadcast(this, 0, - new Intent(ACTION_USB_PERMISSION), 0)); + new Intent(ACTION_USB_PERMISSION), + Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0)); } } else { Timber.d("no ledger device found"); diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java index 4841639d..21b85bef 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java @@ -38,7 +38,6 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; @@ -53,6 +52,7 @@ import com.m2049r.xmrwallet.util.KeyStoreHelper; import com.m2049r.xmrwallet.util.NetCipherHelper; import com.m2049r.xmrwallet.util.NodePinger; import com.m2049r.xmrwallet.util.Notice; +import com.m2049r.xmrwallet.util.ThemeHelper; import com.m2049r.xmrwallet.widget.Toolbar; import java.io.File; @@ -143,7 +143,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter super.onResume(); Timber.d("onResume() %s", activityCallback.getFavouriteNodes().size()); activityCallback.setTitle(null); - activityCallback.setToolbarButton(Toolbar.BUTTON_CREDITS); + activityCallback.setToolbarButton(Toolbar.BUTTON_SETTINGS); activityCallback.showNet(); showNetwork(); //activityCallback.runOnNetCipher(this::pingSelectedNode); @@ -163,12 +163,14 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter fabView = view.findViewById(R.id.fabView); fabKey = view.findViewById(R.id.fabKey); fabSeed = view.findViewById(R.id.fabSeed); + fabImport = view.findViewById(R.id.fabImport); fabLedger = view.findViewById(R.id.fabLedger); fabNewL = view.findViewById(R.id.fabNewL); fabViewL = view.findViewById(R.id.fabViewL); fabKeyL = view.findViewById(R.id.fabKeyL); fabSeedL = view.findViewById(R.id.fabSeedL); + fabImportL = view.findViewById(R.id.fabImportL); fabLedgerL = view.findViewById(R.id.fabLedgerL); fab_pulse = AnimationUtils.loadAnimation(getContext(), R.anim.fab_pulse); @@ -183,6 +185,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter fabView.setOnClickListener(this); fabKey.setOnClickListener(this); fabSeed.setOnClickListener(this); + fabImport.setOnClickListener(this); fabLedger.setOnClickListener(this); fabScreen.setOnClickListener(this); @@ -294,9 +297,9 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter } private boolean isFabOpen = false; - private FloatingActionButton fab, fabNew, fabView, fabKey, fabSeed, fabLedger; - private FrameLayout fabScreen; - private RelativeLayout fabNewL, fabViewL, fabKeyL, fabSeedL, fabLedgerL; + private FloatingActionButton fab, fabNew, fabView, fabKey, fabSeed, fabImport, fabLedger; + private RelativeLayout fabScreen; + private RelativeLayout fabNewL, fabViewL, fabKeyL, fabSeedL, fabImportL, fabLedgerL; private Animation fab_open, fab_close, rotate_forward, rotate_backward, fab_open_screen, fab_close_screen; private Animation fab_pulse; @@ -321,6 +324,8 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter fabKey.setClickable(false); fabSeedL.startAnimation(fab_close); fabSeed.setClickable(false); + fabImportL.startAnimation(fab_close); + fabImport.setClickable(false); } isFabOpen = false; } else { // open the fab @@ -333,6 +338,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter fabViewL.setVisibility(View.GONE); fabKeyL.setVisibility(View.GONE); fabSeedL.setVisibility(View.GONE); + fabImportL.setVisibility(View.GONE); fabLedgerL.startAnimation(fab_open); fabLedger.setClickable(true); @@ -342,6 +348,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter fabViewL.setVisibility(View.VISIBLE); fabKeyL.setVisibility(View.VISIBLE); fabSeedL.setVisibility(View.VISIBLE); + fabImportL.setVisibility(View.VISIBLE); fabNewL.startAnimation(fab_open); fabNew.setClickable(true); @@ -351,6 +358,8 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter fabKey.setClickable(true); fabSeedL.startAnimation(fab_open); fabSeed.setClickable(true); + fabImportL.startAnimation(fab_open); + fabImport.setClickable(true); } isFabOpen = true; } @@ -375,6 +384,9 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter } else if (id == R.id.fabSeed) { animateFAB(); activityCallback.onAddWallet(GenerateFragment.TYPE_SEED); + } else if (id == R.id.fabImport) { + animateFAB(); + activityCallback.onWalletRestore(); } else if (id == R.id.fabLedger) { Timber.d("FAB_LEDGER"); animateFAB(); @@ -403,8 +415,8 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter private void setSubtext(String status) { final Context ctx = getContext(); final Spanned text = Html.fromHtml(ctx.getString(R.string.status, - Integer.toHexString(ContextCompat.getColor(ctx, R.color.monerujoGreen) & 0xFFFFFF), - Integer.toHexString(ContextCompat.getColor(ctx, R.color.monerujoBackground) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(ctx, R.attr.positiveColor) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(ctx, android.R.attr.colorBackground) & 0xFFFFFF), status, "")); tvNodeInfo.setText(text); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/ReceiveFragment.java b/app/src/main/java/com/m2049r/xmrwallet/ReceiveFragment.java index 48af0529..06621ff7 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/ReceiveFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/ReceiveFragment.java @@ -46,10 +46,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.widget.ShareActionProvider; -import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; -import androidx.core.view.MenuItemCompat; import androidx.fragment.app.Fragment; import com.google.android.material.textfield.TextInputLayout; @@ -89,6 +86,7 @@ public class ReceiveFragment extends Fragment { private ImageView ivQrCodeFull; private EditText etDummy; private ImageButton bCopyAddress; + private MenuItem shareItem; private Wallet wallet = null; private boolean isMyWallet = false; @@ -128,6 +126,7 @@ public class ReceiveFragment extends Fragment { evAmount.setOnNewAmountListener(xmr -> { Timber.d("new amount = %s", xmr); generateQr(); + if (shareRequested && (xmr != null)) share(); }); evAmount.setOnFailedExchangeListener(() -> { @@ -211,39 +210,38 @@ public class ReceiveFragment extends Fragment { setSharedElementEnterTransition(transform); } - private ShareActionProvider shareActionProvider; + private boolean shareRequested = false; @Override public void onCreateOptionsMenu(@NonNull Menu menu, final MenuInflater inflater) { inflater.inflate(R.menu.receive_menu, menu); super.onCreateOptionsMenu(menu, inflater); - // Locate MenuItem with ShareActionProvider - MenuItem item = menu.findItem(R.id.menu_item_share); - - // Fetch and store ShareActionProvider - shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); - - shareActionProvider.setOnShareTargetSelectedListener(new ShareActionProvider.OnShareTargetSelectedListener() { - @Override - public boolean onShareTargetSelected(ShareActionProvider shareActionProvider, Intent intent) { - saveQrCode(); // save it only if we need it - return false; + shareItem = menu.findItem(R.id.menu_item_share); + shareItem.setOnMenuItemClickListener(item -> { + if (shareRequested) return true; + shareRequested = true; + if (!qrValid) { + evAmount.doExchange(); + } else { + share(); } + return true; }); } - private void setShareIntent() { - if (shareActionProvider != null) { - if (qrValid) { - shareActionProvider.setShareIntent(getShareIntent()); - } else { - shareActionProvider.setShareIntent(null); - } + private void share() { + shareRequested = false; + if (saveQrCode()) { + final Intent sendIntent = getSendIntent(); + if (sendIntent != null) + startActivity(Intent.createChooser(sendIntent, null)); + } else { + Toast.makeText(getActivity(), getString(R.string.message_qr_failed), Toast.LENGTH_SHORT).show(); } } - private void saveQrCode() { + private boolean saveQrCode() { if (!qrValid) throw new IllegalStateException("trying to save null qr code!"); File cachePath = new File(getActivity().getCacheDir(), "images"); @@ -255,33 +253,35 @@ public class ReceiveFragment extends Fragment { Bitmap qrBitmap = ((BitmapDrawable) ivQrCode.getDrawable()).getBitmap(); qrBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); stream.close(); + return true; } catch (IOException ex) { Timber.e(ex); // make sure we don't share an old qr code if (!png.delete()) throw new IllegalStateException("cannot delete old qr code"); // if we manage to delete it, the URI points to nothing and the user gets a toast with the error } + return false; } - private Intent getShareIntent() { - File imagePath = new File(getActivity().getCacheDir(), "images"); + private Intent getSendIntent() { + File imagePath = new File(requireActivity().getCacheDir(), "images"); File png = new File(imagePath, "QR.png"); - Uri contentUri = FileProvider.getUriForFile(getActivity(), - BuildConfig.APPLICATION_ID + ".fileprovider", png); + Uri contentUri = FileProvider.getUriForFile(requireActivity(), BuildConfig.APPLICATION_ID + ".fileprovider", png); if (contentUri != null) { Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // temp permission for receiving app to read this file - shareIntent.setDataAndType(contentUri, getActivity().getContentResolver().getType(contentUri)); + shareIntent.setTypeAndNormalize("image/png"); shareIntent.putExtra(Intent.EXTRA_STREAM, contentUri); - shareIntent.putExtra(Intent.EXTRA_TEXT, bcData.getUriString()); + if (bcData != null) + shareIntent.putExtra(Intent.EXTRA_TEXT, bcData.getUriString()); return shareIntent; } return null; } void copyAddress() { - Helper.clipBoardCopy(Objects.requireNonNull(getActivity()), getString(R.string.label_copy_address), subaddress.getAddress()); + Helper.clipBoardCopy(requireActivity(), getString(R.string.label_copy_address), subaddress.getAddress()); Toast.makeText(getActivity(), getString(R.string.message_copy_address), Toast.LENGTH_SHORT).show(); } @@ -291,7 +291,6 @@ public class ReceiveFragment extends Fragment { if (qrValid) { ivQrCode.setImageBitmap(null); qrValid = false; - setShareIntent(); if (isLoaded) tvQrCode.setVisibility(View.VISIBLE); } @@ -300,7 +299,6 @@ public class ReceiveFragment extends Fragment { void setQR(Bitmap qr) { ivQrCode.setImageBitmap(qr); qrValid = true; - setShareIntent(); tvQrCode.setVisibility(View.GONE); } @@ -462,8 +460,8 @@ public class ReceiveFragment extends Fragment { subaddress = newSubaddress; final Context context = getContext(); Spanned label = Html.fromHtml(context.getString(R.string.receive_subaddress, - Integer.toHexString(ContextCompat.getColor(context, R.color.monerujoGreen) & 0xFFFFFF), - Integer.toHexString(ContextCompat.getColor(context, R.color.monerujoBackground) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(context, R.attr.positiveColor) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(context, android.R.attr.colorBackground) & 0xFFFFFF), subaddress.getDisplayLabel(), subaddress.getAddress())); tvAddress.setText(label); generateQr(); diff --git a/app/src/main/java/com/m2049r/xmrwallet/SecureActivity.java b/app/src/main/java/com/m2049r/xmrwallet/SecureActivity.java index 23db732e..238aeea1 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/SecureActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/SecureActivity.java @@ -66,11 +66,7 @@ public abstract class SecureActivity extends AppCompatActivity { 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; - } + config.setLocale(locale); } return config; } diff --git a/app/src/main/java/com/m2049r/xmrwallet/SettingsFragment.java b/app/src/main/java/com/m2049r/xmrwallet/SettingsFragment.java new file mode 100644 index 00000000..6a4bb5ad --- /dev/null +++ b/app/src/main/java/com/m2049r/xmrwallet/SettingsFragment.java @@ -0,0 +1,125 @@ +package com.m2049r.xmrwallet; + +import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; + +import androidx.annotation.StyleRes; +import androidx.preference.ListPreference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceManager; + +import com.m2049r.xmrwallet.dialog.AboutFragment; +import com.m2049r.xmrwallet.dialog.CreditsFragment; +import com.m2049r.xmrwallet.dialog.PrivacyFragment; +import com.m2049r.xmrwallet.util.DayNightMode; +import com.m2049r.xmrwallet.util.LocaleHelper; +import com.m2049r.xmrwallet.util.NightmodeHelper; +import com.m2049r.xmrwallet.util.ThemeHelper; +import com.m2049r.xmrwallet.widget.Toolbar; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Locale; + +import timber.log.Timber; + +public class SettingsFragment extends PreferenceFragmentCompat + implements SharedPreferences.OnSharedPreferenceChangeListener { + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.root_preferences, rootKey); + + findPreference(getString(R.string.about_info)).setOnPreferenceClickListener(preference -> { + AboutFragment.display(getParentFragmentManager()); + return true; + }); + findPreference(getString(R.string.privacy_info)).setOnPreferenceClickListener(preference -> { + PrivacyFragment.display(getParentFragmentManager()); + return true; + }); + findPreference(getString(R.string.credits_info)).setOnPreferenceClickListener(preference -> { + CreditsFragment.display(getParentFragmentManager()); + return true; + }); + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (key.equals(getString(R.string.preferred_locale))) { + activity.recreate(); + } else if (key.equals(getString(R.string.preferred_nightmode))) { + NightmodeHelper.setNightMode(DayNightMode.valueOf(sharedPreferences.getString(key, "AUTO"))); + } else if (key.equals(getString(R.string.preferred_theme))) { + ThemeHelper.setTheme((Activity) activity, sharedPreferences.getString(key, "Classic")); + activity.recreate(); + } + } + + private SettingsFragment.Listener activity; + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof SettingsFragment.Listener) { + activity = (SettingsFragment.Listener) context; + } else { + throw new ClassCastException(context + " must implement Listener"); + } + } + + @Override + public void onResume() { + super.onResume(); + Timber.d("onResume()"); + activity.setSubtitle(getString(R.string.menu_settings)); + activity.setToolbarButton(Toolbar.BUTTON_BACK); + populateLanguages(); + PreferenceManager.getDefaultSharedPreferences(requireContext()) + .registerOnSharedPreferenceChangeListener(this); + } + + @Override + public void onPause() { + super.onPause(); + PreferenceManager.getDefaultSharedPreferences(requireContext()) + .unregisterOnSharedPreferenceChangeListener(this); + } + + public interface Listener { + void setToolbarButton(int type); + + void setSubtitle(String title); + + void recreate(); + + void setTheme(@StyleRes final int resId); + } + + public void populateLanguages() { + ListPreference language = findPreference(getString(R.string.preferred_locale)); + assert language != null; + + final ArrayList availableLocales = LocaleHelper.getAvailableLocales(requireContext()); + Collections.sort(availableLocales, (locale1, locale2) -> { + String localeString1 = LocaleHelper.getDisplayName(locale1, true); + String localeString2 = LocaleHelper.getDisplayName(locale2, true); + return localeString1.compareTo(localeString2); + }); + + String[] localeDisplayNames = new String[1 + availableLocales.size()]; + localeDisplayNames[0] = getString(R.string.language_system_default); + for (int i = 1; i < localeDisplayNames.length; i++) { + localeDisplayNames[i] = LocaleHelper.getDisplayName(availableLocales.get(i - 1), true); + } + language.setEntries(localeDisplayNames); + + String[] languageTags = new String[1 + availableLocales.size()]; + languageTags[0] = ""; + for (int i = 1; i < languageTags.length; i++) { + languageTags[i] = availableLocales.get(i - 1).toLanguageTag(); + } + language.setEntryValues(languageTags); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/m2049r/xmrwallet/TxFragment.java b/app/src/main/java/com/m2049r/xmrwallet/TxFragment.java index cca468a6..2160651b 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/TxFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/TxFragment.java @@ -35,7 +35,6 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import com.google.android.material.transition.MaterialContainerTransform; @@ -220,8 +219,8 @@ public class TxFragment extends Fragment { final Context ctx = getContext(); Spanned label = Html.fromHtml(ctx.getString(R.string.tx_account_formatted, info.accountIndex, info.addressIndex, - Integer.toHexString(ContextCompat.getColor(ctx, R.color.monerujoGreen) & 0xFFFFFF), - Integer.toHexString(ContextCompat.getColor(ctx, R.color.monerujoBackground) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(ctx, R.attr.positiveColor) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(ctx, android.R.attr.colorBackground) & 0xFFFFFF), subaddress.getDisplayLabel())); tvAccount.setText(label); tvAccount.setOnClickListener(v -> activityCallback.showSubaddress(v, info.addressIndex)); @@ -266,13 +265,13 @@ public class TxFragment extends Fragment { if (info.isFailed) { tvTxAmount.setText(getString(R.string.tx_list_amount_failed, Wallet.getDisplayAmount(info.amount))); tvTxFee.setText(getString(R.string.tx_list_failed_text)); - setTxColour(ContextCompat.getColor(getContext(), R.color.tx_failed)); + setTxColour(ThemeHelper.getThemedColor(getContext(), R.attr.neutralColor)); } else if (info.isPending) { - setTxColour(ContextCompat.getColor(getContext(), R.color.tx_pending)); + setTxColour(ThemeHelper.getThemedColor(getContext(), R.attr.neutralColor)); } else if (info.direction == TransactionInfo.Direction.Direction_In) { - setTxColour(ContextCompat.getColor(getContext(), R.color.tx_plus)); + setTxColour(ThemeHelper.getThemedColor(getContext(), R.attr.positiveColor)); } else { - setTxColour(ContextCompat.getColor(getContext(), R.color.tx_minus)); + setTxColour(ThemeHelper.getThemedColor(getContext(), R.attr.negativeColor)); } Set destinations = new HashSet<>(); StringBuilder sb = new StringBuilder(); diff --git a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java index 0ff49ee4..e4ae88ed 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java @@ -356,6 +356,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste @Override protected void onCreate(Bundle savedInstanceState) { Timber.d("onCreate()"); + ThemeHelper.setPreferred(this); super.onCreate(savedInstanceState); if (savedInstanceState != null) { // activity restarted @@ -385,7 +386,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste case Toolbar.BUTTON_CLOSE: finish(); break; - case Toolbar.BUTTON_CREDITS: + case Toolbar.BUTTON_SETTINGS: Toast.makeText(WalletActivity.this, getString(R.string.label_credits), Toast.LENGTH_SHORT).show(); case Toolbar.BUTTON_NONE: default: @@ -940,6 +941,7 @@ public class WalletActivity extends BaseActivity implements WalletFragment.Liste @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { Timber.d("onRequestPermissionsResult()"); + super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == Helper.PERMISSIONS_REQUEST_CAMERA) { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { diff --git a/app/src/main/java/com/m2049r/xmrwallet/WalletFragment.java b/app/src/main/java/com/m2049r/xmrwallet/WalletFragment.java index 58566144..c271ec0f 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/WalletFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/WalletFragment.java @@ -52,6 +52,7 @@ import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback; import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate; import com.m2049r.xmrwallet.util.Helper; import com.m2049r.xmrwallet.util.ServiceHelper; +import com.m2049r.xmrwallet.util.ThemeHelper; import com.m2049r.xmrwallet.widget.Toolbar; import java.text.NumberFormat; @@ -111,7 +112,8 @@ public class WalletFragment extends Fragment llBalance = view.findViewById(R.id.llBalance); flExchange = view.findViewById(R.id.flExchange); ((ProgressBar) view.findViewById(R.id.pbExchange)).getIndeterminateDrawable(). - setColorFilter(getResources().getColor(R.color.progress_circle), + setColorFilter( + ThemeHelper.getThemedColor(getContext(), R.attr.colorPrimaryVariant), android.graphics.PorterDuff.Mode.MULTIPLY); tvProgress = view.findViewById(R.id.tvProgress); diff --git a/app/src/main/java/com/m2049r/xmrwallet/XmrWalletApplication.java b/app/src/main/java/com/m2049r/xmrwallet/XmrWalletApplication.java index 5257f141..3762fb18 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/XmrWalletApplication.java +++ b/app/src/main/java/com/m2049r/xmrwallet/XmrWalletApplication.java @@ -22,6 +22,7 @@ import android.content.res.Configuration; import android.os.Build; import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentManager; import com.m2049r.xmrwallet.model.NetworkType; import com.m2049r.xmrwallet.util.LocaleHelper; @@ -35,7 +36,7 @@ public class XmrWalletApplication extends Application { @Override public void onCreate() { super.onCreate(); - + FragmentManager.enableNewStateManager(false); if (BuildConfig.DEBUG) { Timber.plant(new Timber.DebugTree()); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/data/NodeInfo.java b/app/src/main/java/com/m2049r/xmrwallet/data/NodeInfo.java index bab0b7ee..351e7941 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/data/NodeInfo.java +++ b/app/src/main/java/com/m2049r/xmrwallet/data/NodeInfo.java @@ -267,14 +267,14 @@ public class NodeInfo extends Node { public void showInfo(TextView view, String info, boolean isError) { final Context ctx = view.getContext(); final Spanned text = Html.fromHtml(ctx.getString(R.string.status, - Integer.toHexString(ContextCompat.getColor(ctx, R.color.monerujoGreen) & 0xFFFFFF), - Integer.toHexString(ContextCompat.getColor(ctx, R.color.monerujoBackground) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(ctx, R.attr.positiveColor) & 0xFFFFFF), + Integer.toHexString(ThemeHelper.getThemedColor(ctx, android.R.attr.colorBackground) & 0xFFFFFF), (hostAddress.isOnion() ? " .onion  " : ""), " " + info)); view.setText(text); if (isError) view.setTextColor(ThemeHelper.getThemedColor(ctx, R.attr.colorError)); else - view.setTextColor(ThemeHelper.getThemedColor(ctx, R.attr.colorPrimary)); + view.setTextColor(ThemeHelper.getThemedColor(ctx, android.R.attr.textColorSecondary)); } public void showInfo(TextView view) { diff --git a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcSuccessWizardFragment.java b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcSuccessWizardFragment.java index 6c0faf14..41c13db8 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcSuccessWizardFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcSuccessWizardFragment.java @@ -40,6 +40,7 @@ import com.m2049r.xmrwallet.service.shift.sideshift.api.SideShiftApi; import com.m2049r.xmrwallet.service.shift.sideshift.network.SideShiftApiImpl; import com.m2049r.xmrwallet.util.Helper; import com.m2049r.xmrwallet.util.ServiceHelper; +import com.m2049r.xmrwallet.util.ThemeHelper; import java.text.NumberFormat; import java.util.Locale; @@ -212,19 +213,27 @@ public class SendBtcSuccessWizardFragment extends SendWizardFragment { if (status.isError()) { tvXmrToStatus.setText(getString(R.string.info_send_xmrto_error, status.toString())); statusResource = R.drawable.ic_error_red_24dp; - pbXmrto.getIndeterminateDrawable().setColorFilter(0xff8b0000, android.graphics.PorterDuff.Mode.MULTIPLY); + pbXmrto.getIndeterminateDrawable().setColorFilter( + ThemeHelper.getThemedColor(getContext(), android.R.attr.colorError), + android.graphics.PorterDuff.Mode.MULTIPLY); } else if (status.isSent() || status.isPaid()) { tvXmrToStatus.setText(getString(R.string.info_send_xmrto_sent, btcData.getBtcSymbol())); - statusResource = R.drawable.ic_success_green_24dp; - pbXmrto.getIndeterminateDrawable().setColorFilter(0xFF417505, android.graphics.PorterDuff.Mode.MULTIPLY); + statusResource = R.drawable.ic_success; + pbXmrto.getIndeterminateDrawable().setColorFilter( + ThemeHelper.getThemedColor(getContext(), R.attr.positiveColor), + android.graphics.PorterDuff.Mode.MULTIPLY); } else if (status.isWaiting()) { tvXmrToStatus.setText(getString(R.string.info_send_xmrto_unpaid)); - statusResource = R.drawable.ic_pending_orange_24dp; - pbXmrto.getIndeterminateDrawable().setColorFilter(0xFFFF6105, android.graphics.PorterDuff.Mode.MULTIPLY); + statusResource = R.drawable.ic_pending; + pbXmrto.getIndeterminateDrawable().setColorFilter( + ThemeHelper.getThemedColor(getContext(), R.attr.neutralColor), + android.graphics.PorterDuff.Mode.MULTIPLY); } else if (status.isPending()) { tvXmrToStatus.setText(getString(R.string.info_send_xmrto_paid)); - statusResource = R.drawable.ic_pending_orange_24dp; - pbXmrto.getIndeterminateDrawable().setColorFilter(0xFFFF6105, android.graphics.PorterDuff.Mode.MULTIPLY); + statusResource = R.drawable.ic_pending; + pbXmrto.getIndeterminateDrawable().setColorFilter( + ThemeHelper.getThemedColor(getContext(), R.attr.neutralColor), + android.graphics.PorterDuff.Mode.MULTIPLY); } else { throw new IllegalStateException("status is broken: " + status.toString()); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java index 14203c1f..ce82795b 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java @@ -55,7 +55,6 @@ import com.m2049r.xmrwallet.widget.DotBar; import com.m2049r.xmrwallet.widget.Toolbar; import java.lang.ref.WeakReference; -import java.util.Objects; import timber.log.Timber; @@ -202,14 +201,14 @@ public class SendFragment extends Fragment CharSequence nextLabel = pagerAdapter.getPageTitle(position + 1); bNext.setText(nextLabel); if (nextLabel != null) { - bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_navigate_next_white_24dp, 0); + bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_navigate_next, 0); } else { bNext.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); } CharSequence prevLabel = pagerAdapter.getPageTitle(position - 1); bPrev.setText(prevLabel); if (prevLabel != null) { - bPrev.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_navigate_prev_white_24dp, 0, 0, 0); + bPrev.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_navigate_prev, 0, 0, 0); } else { bPrev.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/layout/NodeInfoAdapter.java b/app/src/main/java/com/m2049r/xmrwallet/layout/NodeInfoAdapter.java index 57f02850..baae49e1 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/layout/NodeInfoAdapter.java +++ b/app/src/main/java/com/m2049r/xmrwallet/layout/NodeInfoAdapter.java @@ -23,7 +23,6 @@ import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.fragment.app.FragmentActivity; @@ -230,21 +229,21 @@ public class NodeInfoAdapter extends RecyclerView.Adapter(); this.listener = listener; Calendar cal = Calendar.getInstance(); @@ -253,8 +254,8 @@ public class TransactionInfoAdapter extends RecyclerView.Adapter= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0); String channelId = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? createNotificationChannel() : ""; Notification notification = new NotificationCompat.Builder(this, channelId) diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java b/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java index c5c6c5bf..4cd90cfc 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java @@ -395,7 +395,7 @@ public class Helper { final TextView tvOpenPrompt = promptsView.findViewById(R.id.tvOpenPrompt); final Drawable icFingerprint = context.getDrawable(R.drawable.ic_fingerprint); final Drawable icError = context.getDrawable(R.drawable.ic_error_red_36dp); - final Drawable icInfo = context.getDrawable(R.drawable.ic_info_green_36dp); + final Drawable icInfo = context.getDrawable(R.drawable.ic_info_white_24dp); final boolean fingerprintAuthCheck = FingerprintHelper.isFingerPassValid(context, wallet); diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/LocaleHelper.java b/app/src/main/java/com/m2049r/xmrwallet/util/LocaleHelper.java index b98e5da3..fb79cf98 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/LocaleHelper.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/LocaleHelper.java @@ -27,7 +27,6 @@ import java.util.ArrayList; import java.util.Locale; public class LocaleHelper { - private static final String PREFERRED_LOCALE_KEY = "preferred_locale"; private static Locale SYSTEM_DEFAULT_LOCALE = Locale.getDefault(); public static ArrayList getAvailableLocales(Context context) { @@ -93,12 +92,13 @@ public class LocaleHelper { public static String getPreferredLanguageTag(Context context) { return PreferenceManager.getDefaultSharedPreferences(context) - .getString(PREFERRED_LOCALE_KEY, ""); + .getString("preferred_locale", ""); + // cannot access getString here as it's done BEFORE string locale is set } @SuppressLint("ApplySharedPref") private static void savePreferredLangaugeTag(Context context, String locale) { PreferenceManager.getDefaultSharedPreferences(context).edit() - .putString(PREFERRED_LOCALE_KEY, locale).commit(); + .putString(context.getString(R.string.preferred_locale), locale).commit(); } } diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/NightmodeHelper.java b/app/src/main/java/com/m2049r/xmrwallet/util/NightmodeHelper.java index e80b8589..afe4ce4f 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/NightmodeHelper.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/NightmodeHelper.java @@ -16,32 +16,37 @@ package com.m2049r.xmrwallet.util; +import android.annotation.SuppressLint; import android.content.Context; +import android.content.SharedPreferences; import android.preference.PreferenceManager; import androidx.appcompat.app.AppCompatDelegate; -public class NightmodeHelper { - private static final String PREFERRED_NIGHTMODE_KEY = "preferred_nightmode"; +import com.m2049r.xmrwallet.R; +public class NightmodeHelper { public static DayNightMode getPreferredNightmode(Context context) { return DayNightMode.valueOf(PreferenceManager.getDefaultSharedPreferences(context) - .getString(PREFERRED_NIGHTMODE_KEY, "UNKNOWN")); + .getString(context.getString(R.string.preferred_nightmode), "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); + .getString(context.getString(R.string.preferred_nightmode), "UNKNOWN")); + if (mode == DayNightMode.UNKNOWN) + setAndSavePreferredNightmode(context, DayNightMode.AUTO); + else + setNightMode(mode); } public static void setAndSavePreferredNightmode(Context context, DayNightMode mode) { PreferenceManager.getDefaultSharedPreferences(context).edit() - .putString(PREFERRED_NIGHTMODE_KEY, mode.name()).apply(); + .putString(context.getString(R.string.preferred_nightmode), mode.name()).apply(); setNightMode(mode); } + @SuppressLint("WrongConstant") public static void setNightMode(DayNightMode mode) { AppCompatDelegate.setDefaultNightMode(mode.getNightMode()); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/Notice.java b/app/src/main/java/com/m2049r/xmrwallet/util/Notice.java index 673e37a2..727c3959 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/Notice.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/Notice.java @@ -98,12 +98,7 @@ public class Notice { final FragmentManager fragmentManager = ((FragmentActivity) context).getSupportFragmentManager(); - ll.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - HelpFragment.display(fragmentManager, helpResId); - } - }); + ll.setOnClickListener(v -> HelpFragment.display(fragmentManager, helpResId)); ImageButton ib = ll.findViewById(R.id.ibClose); ib.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/RestoreHeight.java b/app/src/main/java/com/m2049r/xmrwallet/util/RestoreHeight.java index 1619bf26..00e59521 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/RestoreHeight.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/RestoreHeight.java @@ -127,6 +127,18 @@ public class RestoreHeight { blockheight.put("2021-01-01", 2264584L); blockheight.put("2021-02-01", 2286892L); blockheight.put("2021-03-01", 2307079L); + blockheight.put("2021-04-01", 2329385L); + blockheight.put("2021-05-01", 2351004L); + blockheight.put("2021-06-01", 2373306L); + blockheight.put("2021-07-01", 2394882L); + blockheight.put("2021-08-01", 2417162L); + blockheight.put("2021-09-01", 2439490L); + blockheight.put("2021-10-01", 2461020L); + blockheight.put("2021-11-01", 2483377L); + blockheight.put("2021-12-01", 2504932L); + blockheight.put("2022-01-01", 2527316L); + blockheight.put("2022-02-01", 2549605L); + blockheight.put("2022-03-01", 2569711L); } public long getHeight(String date) { diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/ThemeHelper.java b/app/src/main/java/com/m2049r/xmrwallet/util/ThemeHelper.java index 20f8c484..21ff7330 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/ThemeHelper.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/ThemeHelper.java @@ -16,11 +16,16 @@ package com.m2049r.xmrwallet.util; +import android.app.Activity; import android.content.Context; import android.graphics.Color; +import android.preference.PreferenceManager; import android.util.TypedValue; import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; + +import com.m2049r.xmrwallet.R; public class ThemeHelper { static public int getThemedResourceId(Context ctx, int attrId) { @@ -39,4 +44,22 @@ public class ThemeHelper { else return Color.BLACK; } + + public static void setTheme(@NonNull Activity activity, @NonNull String theme) { + switch (theme) { + case "Classic": + activity.setTheme(R.style.MyMaterialThemeClassic); + break; + case "Oled": + activity.setTheme(R.style.MyMaterialThemeOled); + break; + } + } + + public static void setPreferred(Activity activity) { + final String theme = PreferenceManager.getDefaultSharedPreferences(activity) + .getString(activity.getString(R.string.preferred_theme), "Classic"); + setTheme(activity, theme); + } + } diff --git a/app/src/main/java/com/m2049r/xmrwallet/widget/ExchangeEditText.java b/app/src/main/java/com/m2049r/xmrwallet/widget/ExchangeEditText.java index 26ff14b7..00b1b19b 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/widget/ExchangeEditText.java +++ b/app/src/main/java/com/m2049r/xmrwallet/widget/ExchangeEditText.java @@ -41,6 +41,7 @@ import com.m2049r.xmrwallet.service.exchange.api.ExchangeCallback; import com.m2049r.xmrwallet.service.exchange.api.ExchangeRate; import com.m2049r.xmrwallet.util.Helper; import com.m2049r.xmrwallet.util.ServiceHelper; +import com.m2049r.xmrwallet.util.ThemeHelper; import java.util.ArrayList; import java.util.Arrays; @@ -224,7 +225,7 @@ public class ExchangeEditText extends LinearLayout { // make progress circle gray pbExchange.getIndeterminateDrawable(). - setColorFilter(getResources().getColor(R.color.progress_circle), + setColorFilter(ThemeHelper.getThemedColor(getContext(), R.attr.colorPrimaryVariant), android.graphics.PorterDuff.Mode.MULTIPLY); sCurrencyA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { diff --git a/app/src/main/java/com/m2049r/xmrwallet/widget/Toolbar.java b/app/src/main/java/com/m2049r/xmrwallet/widget/Toolbar.java index c7f4d90e..768f8a8f 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/widget/Toolbar.java +++ b/app/src/main/java/com/m2049r/xmrwallet/widget/Toolbar.java @@ -46,7 +46,7 @@ public class Toolbar extends MaterialToolbar { ImageView toolbarImage; TextView toolbarTitle; TextView toolbarSubtitle; - ImageButton bCredits; + ImageButton bSettings; public Toolbar(Context context) { super(context); @@ -88,12 +88,10 @@ public class Toolbar extends MaterialToolbar { toolbarTitle = findViewById(R.id.toolbarTitle); toolbarSubtitle = findViewById(R.id.toolbarSubtitle); - bCredits = findViewById(R.id.bCredits); - bCredits.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - if (onButtonListener != null) { - onButtonListener.onButton(buttonType); - } + bSettings = findViewById(R.id.bSettings); + bSettings.setOnClickListener(v -> { + if (onButtonListener != null) { + onButtonListener.onButton(buttonType); } }); } @@ -117,37 +115,37 @@ public class Toolbar extends MaterialToolbar { public final static int BUTTON_NONE = 0; public final static int BUTTON_BACK = 1; public final static int BUTTON_CLOSE = 2; - public final static int BUTTON_CREDITS = 3; + public final static int BUTTON_SETTINGS = 3; public final static int BUTTON_CANCEL = 4; - int buttonType = BUTTON_CREDITS; + int buttonType = BUTTON_SETTINGS; public void setButton(int type) { switch (type) { case BUTTON_BACK: Timber.d("BUTTON_BACK"); - bCredits.setImageResource(R.drawable.ic_arrow_back_white_24dp); - bCredits.setVisibility(View.VISIBLE); + bSettings.setImageResource(R.drawable.ic_arrow_back); + bSettings.setVisibility(View.VISIBLE); break; case BUTTON_CLOSE: Timber.d("BUTTON_CLOSE"); - bCredits.setImageResource(R.drawable.ic_close_white_24dp); - bCredits.setVisibility(View.VISIBLE); + bSettings.setImageResource(R.drawable.ic_close_white_24dp); + bSettings.setVisibility(View.VISIBLE); break; - case BUTTON_CREDITS: - Timber.d("BUTTON_CREDITS"); - bCredits.setImageResource(R.drawable.ic_favorite_white_24dp); - bCredits.setVisibility(View.VISIBLE); + case BUTTON_SETTINGS: + Timber.d("BUTTON_SETTINGS"); + bSettings.setImageResource(R.drawable.ic_settings); + bSettings.setVisibility(View.VISIBLE); break; case BUTTON_CANCEL: Timber.d("BUTTON_CANCEL"); - bCredits.setImageResource(R.drawable.ic_close_white_24dp); - bCredits.setVisibility(View.VISIBLE); + bSettings.setImageResource(R.drawable.ic_close_white_24dp); + bSettings.setVisibility(View.VISIBLE); break; case BUTTON_NONE: default: Timber.d("BUTTON_NONE"); - bCredits.setVisibility(View.INVISIBLE); + bSettings.setVisibility(View.INVISIBLE); } buttonType = type; } diff --git a/app/src/main/res/color/btn_color_selector.xml b/app/src/main/res/color/btn_color_selector.xml index 3a736463..a863d40b 100644 --- a/app/src/main/res/color/btn_color_selector.xml +++ b/app/src/main/res/color/btn_color_selector.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable-v24/ic_check_circle.xml b/app/src/main/res/drawable-v24/ic_check_circle.xml index 5be895b4..7c0c48e0 100644 --- a/app/src/main/res/drawable-v24/ic_check_circle.xml +++ b/app/src/main/res/drawable-v24/ic_check_circle.xml @@ -13,10 +13,10 @@ android:startY="74.0" android:type="linear"> diff --git a/app/src/main/res/drawable-v24/ic_check_circle_xmr.xml b/app/src/main/res/drawable-v24/ic_check_circle_xmr.xml index 311c65a4..342a70b2 100644 --- a/app/src/main/res/drawable-v24/ic_check_circle_xmr.xml +++ b/app/src/main/res/drawable-v24/ic_check_circle_xmr.xml @@ -17,10 +17,10 @@ android:startY="58.0" android:type="linear"> diff --git a/app/src/main/res/drawable-v24/ic_xmrto_btc_off.xml b/app/src/main/res/drawable-v24/ic_xmrto_btc_off.xml new file mode 100644 index 00000000..bacf2e4a --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_xmrto_btc_off.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable-v24/ic_xmrto_dash_off.xml b/app/src/main/res/drawable-v24/ic_xmrto_dash_off.xml new file mode 100644 index 00000000..8d52acf7 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_xmrto_dash_off.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/ic_xmrto_doge_off.xml b/app/src/main/res/drawable-v24/ic_xmrto_doge_off.xml new file mode 100644 index 00000000..dc12f6b4 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_xmrto_doge_off.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable-v24/ic_xmrto_eth_off.xml b/app/src/main/res/drawable-v24/ic_xmrto_eth_off.xml new file mode 100644 index 00000000..8e58eca1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_xmrto_eth_off.xml @@ -0,0 +1,38 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/ic_xmrto_ltc_off.xml b/app/src/main/res/drawable-v24/ic_xmrto_ltc_off.xml new file mode 100644 index 00000000..ffdc3bbc --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_xmrto_ltc_off.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable/backgound_seed.xml b/app/src/main/res/drawable/backgound_seed.xml index 5bd552a3..b15241e3 100644 --- a/app/src/main/res/drawable/backgound_seed.xml +++ b/app/src/main/res/drawable/backgound_seed.xml @@ -1,7 +1,6 @@ - diff --git a/app/src/main/res/drawable/backgound_toolbar_mainnet.xml b/app/src/main/res/drawable/backgound_toolbar_mainnet.xml index 5d19b551..87168c36 100644 --- a/app/src/main/res/drawable/backgound_toolbar_mainnet.xml +++ b/app/src/main/res/drawable/backgound_toolbar_mainnet.xml @@ -1,7 +1,4 @@ - \ No newline at end of file diff --git a/app/src/main/res/drawable/backgound_toolbar_streetmode.xml b/app/src/main/res/drawable/backgound_toolbar_streetmode.xml index 9d8cf866..d354b603 100644 --- a/app/src/main/res/drawable/backgound_toolbar_streetmode.xml +++ b/app/src/main/res/drawable/backgound_toolbar_streetmode.xml @@ -1,7 +1,4 @@ - \ No newline at end of file diff --git a/app/src/main/res/drawable/button_green.xml b/app/src/main/res/drawable/button_green.xml index ce3d520f..7bcc5944 100644 --- a/app/src/main/res/drawable/button_green.xml +++ b/app/src/main/res/drawable/button_green.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/gradient_all.xml b/app/src/main/res/drawable/gradient_all.xml index 64fe882c..0c1e5371 100644 --- a/app/src/main/res/drawable/gradient_all.xml +++ b/app/src/main/res/drawable/gradient_all.xml @@ -3,7 +3,7 @@ android:shape="rectangle"> diff --git a/app/src/main/res/drawable/gradient_oval.xml b/app/src/main/res/drawable/gradient_oval.xml index c9b7c53d..a2ec4b7e 100644 --- a/app/src/main/res/drawable/gradient_oval.xml +++ b/app/src/main/res/drawable/gradient_oval.xml @@ -3,7 +3,7 @@ android:shape="oval"> \ No newline at end of file diff --git a/app/src/main/res/drawable/gradient_street.xml b/app/src/main/res/drawable/gradient_street.xml index ea15a5c6..13d38c7e 100644 --- a/app/src/main/res/drawable/gradient_street.xml +++ b/app/src/main/res/drawable/gradient_street.xml @@ -3,7 +3,7 @@ android:shape="rectangle"> diff --git a/app/src/main/res/drawable/gradient_street_efab.xml b/app/src/main/res/drawable/gradient_street_efab.xml index 4f5b0728..fecef8c0 100644 --- a/app/src/main/res/drawable/gradient_street_efab.xml +++ b/app/src/main/res/drawable/gradient_street_efab.xml @@ -3,8 +3,8 @@ android:shape="rectangle"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_account_balance_wallet_black_24dp.xml b/app/src/main/res/drawable/ic_account_balance_wallet_black_24dp.xml index 9f5c21cb..23c3e5d2 100644 --- a/app/src/main/res/drawable/ic_account_balance_wallet_black_24dp.xml +++ b/app/src/main/res/drawable/ic_account_balance_wallet_black_24dp.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_add_white_24dp.xml b/app/src/main/res/drawable/ic_add.xml similarity index 65% rename from app/src/main/res/drawable/ic_add_white_24dp.xml rename to app/src/main/res/drawable/ic_add.xml index ba7fc6e4..e249c3e0 100644 --- a/app/src/main/res/drawable/ic_add_white_24dp.xml +++ b/app/src/main/res/drawable/ic_add.xml @@ -1,9 +1,9 @@ + android:viewportWidth="24.0" + android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_add_circle_outline.xml b/app/src/main/res/drawable/ic_add_circle.xml similarity index 90% rename from app/src/main/res/drawable/ic_add_circle_outline.xml rename to app/src/main/res/drawable/ic_add_circle.xml index e0be2e8e..2c0d372e 100644 --- a/app/src/main/res/drawable/ic_add_circle_outline.xml +++ b/app/src/main/res/drawable/ic_add_circle.xml @@ -4,6 +4,6 @@ android:viewportWidth="20.0" android:viewportHeight="20.0"> diff --git a/app/src/main/res/drawable/ic_add_circle_white.xml b/app/src/main/res/drawable/ic_add_circle_white.xml deleted file mode 100644 index ef7dc50f..00000000 --- a/app/src/main/res/drawable/ic_add_circle_white.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_all_inclusive_24dp.xml b/app/src/main/res/drawable/ic_all_inclusive.xml similarity index 94% rename from app/src/main/res/drawable/ic_all_inclusive_24dp.xml rename to app/src/main/res/drawable/ic_all_inclusive.xml index d21f7dd1..92f9867f 100644 --- a/app/src/main/res/drawable/ic_all_inclusive_24dp.xml +++ b/app/src/main/res/drawable/ic_all_inclusive.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_arrow_back_white_24dp.xml b/app/src/main/res/drawable/ic_arrow_back.xml similarity index 58% rename from app/src/main/res/drawable/ic_arrow_back_white_24dp.xml rename to app/src/main/res/drawable/ic_arrow_back.xml index eb28317c..858c605e 100644 --- a/app/src/main/res/drawable/ic_arrow_back_white_24dp.xml +++ b/app/src/main/res/drawable/ic_arrow_back.xml @@ -1,9 +1,10 @@ + android:tint="?attr/colorControlNormal" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_baseline_cancel_24.xml b/app/src/main/res/drawable/ic_baseline_cancel_24.xml deleted file mode 100644 index 583a772b..00000000 --- a/app/src/main/res/drawable/ic_baseline_cancel_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_baseline_launch_24.xml b/app/src/main/res/drawable/ic_baseline_launch_24.xml deleted file mode 100644 index 455b503a..00000000 --- a/app/src/main/res/drawable/ic_baseline_launch_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_check_circle.xml b/app/src/main/res/drawable/ic_check_circle.xml index d59e8e7f..d820d9bd 100644 --- a/app/src/main/res/drawable/ic_check_circle.xml +++ b/app/src/main/res/drawable/ic_check_circle.xml @@ -4,6 +4,6 @@ android:viewportHeight="74.0" android:viewportWidth="74.0"> diff --git a/app/src/main/res/drawable/ic_check_circle_xmr.xml b/app/src/main/res/drawable/ic_check_circle_xmr.xml index b90fbff9..645bdf10 100644 --- a/app/src/main/res/drawable/ic_check_circle_xmr.xml +++ b/app/src/main/res/drawable/ic_check_circle_xmr.xml @@ -4,7 +4,7 @@ android:viewportHeight="58.0" android:viewportWidth="58.0"> diff --git a/app/src/main/res/drawable/ic_check_gray_24dp.xml b/app/src/main/res/drawable/ic_check_gray_24dp.xml deleted file mode 100644 index d1d3bbbd..00000000 --- a/app/src/main/res/drawable/ic_check_gray_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_close_white_24dp.xml b/app/src/main/res/drawable/ic_close_white_24dp.xml index 2b2a1aaf..927a9426 100644 --- a/app/src/main/res/drawable/ic_close_white_24dp.xml +++ b/app/src/main/res/drawable/ic_close_white_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_done_all.xml b/app/src/main/res/drawable/ic_done_all.xml index a3152b05..80c1ad86 100644 --- a/app/src/main/res/drawable/ic_done_all.xml +++ b/app/src/main/res/drawable/ic_done_all.xml @@ -7,7 +7,7 @@ android:translateX="0.000000" android:translateY="+7.000000"> diff --git a/app/src/main/res/drawable/ic_error_red_24dp.xml b/app/src/main/res/drawable/ic_error_red_24dp.xml index 5b0e5c83..70e38a93 100644 --- a/app/src/main/res/drawable/ic_error_red_24dp.xml +++ b/app/src/main/res/drawable/ic_error_red_24dp.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_eye.xml b/app/src/main/res/drawable/ic_eye.xml index 43559d34..c7f3ef75 100644 --- a/app/src/main/res/drawable/ic_eye.xml +++ b/app/src/main/res/drawable/ic_eye.xml @@ -2,18 +2,11 @@ - - - - + - - + android:strokeWidth="1" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_favorite_24dp.xml b/app/src/main/res/drawable/ic_favorite_24dp.xml index 8cf1412c..933147e9 100644 --- a/app/src/main/res/drawable/ic_favorite_24dp.xml +++ b/app/src/main/res/drawable/ic_favorite_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_favorite_border_24dp.xml b/app/src/main/res/drawable/ic_favorite_border_24dp.xml index 4710d95a..a26a6bab 100644 --- a/app/src/main/res/drawable/ic_favorite_border_24dp.xml +++ b/app/src/main/res/drawable/ic_favorite_border_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_favorite_white_24dp.xml b/app/src/main/res/drawable/ic_favorite_white_24dp.xml deleted file mode 100644 index 3c8ccd17..00000000 --- a/app/src/main/res/drawable/ic_favorite_white_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_fingerprint.xml b/app/src/main/res/drawable/ic_fingerprint.xml index 9c51b700..30d9186d 100644 --- a/app/src/main/res/drawable/ic_fingerprint.xml +++ b/app/src/main/res/drawable/ic_fingerprint.xml @@ -5,21 +5,21 @@ android:viewportHeight="36.0"> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_help_white_24dp.xml b/app/src/main/res/drawable/ic_help_white_24dp.xml index db59fe78..1f732001 100644 --- a/app/src/main/res/drawable/ic_help_white_24dp.xml +++ b/app/src/main/res/drawable/ic_help_white_24dp.xml @@ -1,9 +1,10 @@ diff --git a/app/src/main/res/drawable/ic_import.xml b/app/src/main/res/drawable/ic_import.xml new file mode 100644 index 00000000..62c1d5e9 --- /dev/null +++ b/app/src/main/res/drawable/ic_import.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_info_green_36dp.xml b/app/src/main/res/drawable/ic_info_green_36dp.xml deleted file mode 100644 index 230b5963..00000000 --- a/app/src/main/res/drawable/ic_info_green_36dp.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_info_white_24dp.xml b/app/src/main/res/drawable/ic_info_white_24dp.xml index c9f33b31..9f60ef94 100644 --- a/app/src/main/res/drawable/ic_info_white_24dp.xml +++ b/app/src/main/res/drawable/ic_info_white_24dp.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_key.xml b/app/src/main/res/drawable/ic_key.xml index ac50e393..6252c725 100644 --- a/app/src/main/res/drawable/ic_key.xml +++ b/app/src/main/res/drawable/ic_key.xml @@ -12,7 +12,7 @@ android:translateX="219.000000" android:translateY="136.000000"> + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index ed893783..85c122df 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -4,23 +4,26 @@ android:height="108dp" android:viewportWidth="108" android:viewportHeight="108"> - - - - - - - - - + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index ec890349..2c2fd4b4 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -3,10 +3,10 @@ android:height="108dp" android:viewportWidth="108" android:viewportHeight="108"> - - + + diff --git a/app/src/main/res/drawable/ic_ledger_restore.xml b/app/src/main/res/drawable/ic_ledger_restore.xml index 6dc023fe..be8b6913 100644 --- a/app/src/main/res/drawable/ic_ledger_restore.xml +++ b/app/src/main/res/drawable/ic_ledger_restore.xml @@ -1,8 +1,8 @@ + android:viewportWidth="529.82" + android:viewportHeight="184.59"> diff --git a/app/src/main/res/drawable/ic_logo_horizontol_xmrujo.xml b/app/src/main/res/drawable/ic_logo_horizontol_xmrujo.xml index 0486b492..ec2cdd42 100644 --- a/app/src/main/res/drawable/ic_logo_horizontol_xmrujo.xml +++ b/app/src/main/res/drawable/ic_logo_horizontol_xmrujo.xml @@ -1,33 +1,34 @@ diff --git a/app/src/main/res/drawable/ic_monero_bw.xml b/app/src/main/res/drawable/ic_monero_bw.xml index 1b4cef11..29100129 100644 --- a/app/src/main/res/drawable/ic_monero_bw.xml +++ b/app/src/main/res/drawable/ic_monero_bw.xml @@ -4,9 +4,9 @@ android:viewportWidth="256" android:viewportHeight="256"> diff --git a/app/src/main/res/drawable/ic_monerujo.xml b/app/src/main/res/drawable/ic_monerujo.xml index b700071d..88d43061 100644 --- a/app/src/main/res/drawable/ic_monerujo.xml +++ b/app/src/main/res/drawable/ic_monerujo.xml @@ -2,18 +2,12 @@ + android:viewportWidth="1270" + android:viewportHeight="1270"> - diff --git a/app/src/main/res/drawable/ic_navigate_next_white_24dp.xml b/app/src/main/res/drawable/ic_navigate_next.xml similarity index 79% rename from app/src/main/res/drawable/ic_navigate_next_white_24dp.xml rename to app/src/main/res/drawable/ic_navigate_next.xml index e15024dc..435fc04d 100644 --- a/app/src/main/res/drawable/ic_navigate_next_white_24dp.xml +++ b/app/src/main/res/drawable/ic_navigate_next.xml @@ -1,8 +1,8 @@ + android:viewportWidth="24.0" + android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml b/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml deleted file mode 100644 index e15024dc..00000000 --- a/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_navigate_prev_white_24dp.xml b/app/src/main/res/drawable/ic_navigate_prev.xml similarity index 100% rename from app/src/main/res/drawable/ic_navigate_prev_white_24dp.xml rename to app/src/main/res/drawable/ic_navigate_prev.xml diff --git a/app/src/main/res/drawable/ic_new.xml b/app/src/main/res/drawable/ic_new.xml index eb0b47bb..0c861aee 100644 --- a/app/src/main/res/drawable/ic_new.xml +++ b/app/src/main/res/drawable/ic_new.xml @@ -2,18 +2,11 @@ - - - - + - - + android:strokeWidth="1" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_nfc_black_24dp.xml b/app/src/main/res/drawable/ic_nfc.xml similarity index 78% rename from app/src/main/res/drawable/ic_nfc_black_24dp.xml rename to app/src/main/res/drawable/ic_nfc.xml index 6acbf783..2821ae80 100644 --- a/app/src/main/res/drawable/ic_nfc_black_24dp.xml +++ b/app/src/main/res/drawable/ic_nfc.xml @@ -1,9 +1,9 @@ + android:viewportWidth="24.0" + android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_pending_orange_24dp.xml b/app/src/main/res/drawable/ic_pending.xml similarity index 73% rename from app/src/main/res/drawable/ic_pending_orange_24dp.xml rename to app/src/main/res/drawable/ic_pending.xml index 5f748fdb..bca0e0af 100644 --- a/app/src/main/res/drawable/ic_pending_orange_24dp.xml +++ b/app/src/main/res/drawable/ic_pending.xml @@ -1,9 +1,9 @@ + android:viewportWidth="24.0" + android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_refresh_24dp.xml b/app/src/main/res/drawable/ic_refresh_24dp.xml deleted file mode 100644 index 2184bbfd..00000000 --- a/app/src/main/res/drawable/ic_refresh_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_refresh_black_24dp.xml b/app/src/main/res/drawable/ic_refresh_black_24dp.xml deleted file mode 100644 index c5ae344f..00000000 --- a/app/src/main/res/drawable/ic_refresh_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_renew_24dp.xml b/app/src/main/res/drawable/ic_renew.xml similarity index 100% rename from app/src/main/res/drawable/ic_renew_24dp.xml rename to app/src/main/res/drawable/ic_renew.xml diff --git a/app/src/main/res/drawable/ic_seed.xml b/app/src/main/res/drawable/ic_seed.xml index ba295044..6d714f63 100644 --- a/app/src/main/res/drawable/ic_seed.xml +++ b/app/src/main/res/drawable/ic_seed.xml @@ -5,17 +5,17 @@ android:viewportHeight="6.3500004"> + android:fillColor="#000"/> + android:fillColor="#000"/> + android:fillColor="#000"/> + android:fillColor="#000"/> + android:fillColor="#000"/> diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml new file mode 100644 index 00000000..a7c7678d --- /dev/null +++ b/app/src/main/res/drawable/ic_settings.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_share_white_24dp.xml b/app/src/main/res/drawable/ic_share.xml similarity index 87% rename from app/src/main/res/drawable/ic_share_white_24dp.xml rename to app/src/main/res/drawable/ic_share.xml index a918453f..c2a49267 100644 --- a/app/src/main/res/drawable/ic_share_white_24dp.xml +++ b/app/src/main/res/drawable/ic_share.xml @@ -1,9 +1,10 @@ diff --git a/app/src/main/res/drawable/ic_sideshift_circle.xml b/app/src/main/res/drawable/ic_sideshift_circle.xml index 366f959d..f894205f 100644 --- a/app/src/main/res/drawable/ic_sideshift_circle.xml +++ b/app/src/main/res/drawable/ic_sideshift_circle.xml @@ -4,9 +4,9 @@ android:viewportWidth="80.52" android:viewportHeight="80.46"> > + android:fillColor="?colorPrimary" + android:pathData="M66.07,9.67A40,40 0,0 0,9.69 66.11Z" /> diff --git a/app/src/main/res/drawable/ic_sideshift_white.xml b/app/src/main/res/drawable/ic_sideshift_white.xml index 76d8891b..549c445f 100644 --- a/app/src/main/res/drawable/ic_sideshift_white.xml +++ b/app/src/main/res/drawable/ic_sideshift_white.xml @@ -4,45 +4,45 @@ android:viewportWidth="648" android:viewportHeight="80"> diff --git a/app/src/main/res/drawable/ic_smiley_ecstatic_filled.xml b/app/src/main/res/drawable/ic_smiley_ecstatic_filled.xml index 5599f408..d6361528 100644 --- a/app/src/main/res/drawable/ic_smiley_ecstatic_filled.xml +++ b/app/src/main/res/drawable/ic_smiley_ecstatic_filled.xml @@ -4,6 +4,6 @@ android:viewportWidth="85.43" android:viewportHeight="85.43"> diff --git a/app/src/main/res/drawable/ic_smiley_gunther_filled.xml b/app/src/main/res/drawable/ic_smiley_gunther_filled.xml index b984c882..73a1202b 100644 --- a/app/src/main/res/drawable/ic_smiley_gunther_filled.xml +++ b/app/src/main/res/drawable/ic_smiley_gunther_filled.xml @@ -4,9 +4,9 @@ android:viewportWidth="85.43" android:viewportHeight="85.43"> diff --git a/app/src/main/res/drawable/ic_smiley_happy_filled.xml b/app/src/main/res/drawable/ic_smiley_happy_filled.xml index 2a90da42..ebd638d8 100644 --- a/app/src/main/res/drawable/ic_smiley_happy_filled.xml +++ b/app/src/main/res/drawable/ic_smiley_happy_filled.xml @@ -4,6 +4,6 @@ android:viewportWidth="85.43" android:viewportHeight="85.43"> diff --git a/app/src/main/res/drawable/ic_smiley_meh_filled.xml b/app/src/main/res/drawable/ic_smiley_meh_filled.xml index 057e41e8..6936876b 100644 --- a/app/src/main/res/drawable/ic_smiley_meh_filled.xml +++ b/app/src/main/res/drawable/ic_smiley_meh_filled.xml @@ -4,6 +4,6 @@ android:viewportWidth="85.43" android:viewportHeight="85.43"> diff --git a/app/src/main/res/drawable/ic_smiley_neutral_filled.xml b/app/src/main/res/drawable/ic_smiley_neutral_filled.xml index 13cff5b6..ca1b805a 100644 --- a/app/src/main/res/drawable/ic_smiley_neutral_filled.xml +++ b/app/src/main/res/drawable/ic_smiley_neutral_filled.xml @@ -4,6 +4,6 @@ android:viewportWidth="85.43" android:viewportHeight="85.43"> diff --git a/app/src/main/res/drawable/ic_smiley_sad_filled.xml b/app/src/main/res/drawable/ic_smiley_sad_filled.xml index db30f3ef..1f7a4983 100644 --- a/app/src/main/res/drawable/ic_smiley_sad_filled.xml +++ b/app/src/main/res/drawable/ic_smiley_sad_filled.xml @@ -4,6 +4,6 @@ android:viewportWidth="85.43" android:viewportHeight="85.43"> diff --git a/app/src/main/res/drawable/ic_success_green_24dp.xml b/app/src/main/res/drawable/ic_success.xml similarity index 87% rename from app/src/main/res/drawable/ic_success_green_24dp.xml rename to app/src/main/res/drawable/ic_success.xml index a8300b8c..0bc71eef 100644 --- a/app/src/main/res/drawable/ic_success_green_24dp.xml +++ b/app/src/main/res/drawable/ic_success.xml @@ -4,6 +4,6 @@ android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/app/src/main/res/drawable/ic_signal_wifi_1_bar_24dp.xml b/app/src/main/res/drawable/ic_wifi_1_bar.xml similarity index 85% rename from app/src/main/res/drawable/ic_signal_wifi_1_bar_24dp.xml rename to app/src/main/res/drawable/ic_wifi_1_bar.xml index a6aab842..fa525ec8 100644 --- a/app/src/main/res/drawable/ic_signal_wifi_1_bar_24dp.xml +++ b/app/src/main/res/drawable/ic_wifi_1_bar.xml @@ -5,9 +5,9 @@ android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_signal_wifi_2_bar_24dp.xml b/app/src/main/res/drawable/ic_wifi_2_bar.xml similarity index 85% rename from app/src/main/res/drawable/ic_signal_wifi_2_bar_24dp.xml rename to app/src/main/res/drawable/ic_wifi_2_bar.xml index 3b180880..9a967097 100644 --- a/app/src/main/res/drawable/ic_signal_wifi_2_bar_24dp.xml +++ b/app/src/main/res/drawable/ic_wifi_2_bar.xml @@ -5,9 +5,9 @@ android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_signal_wifi_3_bar_24dp.xml b/app/src/main/res/drawable/ic_wifi_3_bar.xml similarity index 86% rename from app/src/main/res/drawable/ic_signal_wifi_3_bar_24dp.xml rename to app/src/main/res/drawable/ic_wifi_3_bar.xml index 0252ebcf..40872576 100644 --- a/app/src/main/res/drawable/ic_signal_wifi_3_bar_24dp.xml +++ b/app/src/main/res/drawable/ic_wifi_3_bar.xml @@ -5,9 +5,9 @@ android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_signal_wifi_4_bar_24dp.xml b/app/src/main/res/drawable/ic_wifi_4_bar.xml similarity index 89% rename from app/src/main/res/drawable/ic_signal_wifi_4_bar_24dp.xml rename to app/src/main/res/drawable/ic_wifi_4_bar.xml index 645e9fff..0277e813 100644 --- a/app/src/main/res/drawable/ic_signal_wifi_4_bar_24dp.xml +++ b/app/src/main/res/drawable/ic_wifi_4_bar.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_wifi_lock_black_24dp.xml b/app/src/main/res/drawable/ic_wifi_lock.xml similarity index 93% rename from app/src/main/res/drawable/ic_wifi_lock_black_24dp.xml rename to app/src/main/res/drawable/ic_wifi_lock.xml index a12c2c7b..63f47c93 100644 --- a/app/src/main/res/drawable/ic_wifi_lock_black_24dp.xml +++ b/app/src/main/res/drawable/ic_wifi_lock.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_signal_wifi_off_24dp.xml b/app/src/main/res/drawable/ic_wifi_off.xml similarity index 91% rename from app/src/main/res/drawable/ic_signal_wifi_off_24dp.xml rename to app/src/main/res/drawable/ic_wifi_off.xml index 9ef5e210..a4905df4 100644 --- a/app/src/main/res/drawable/ic_signal_wifi_off_24dp.xml +++ b/app/src/main/res/drawable/ic_wifi_off.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_xmrto_btc_off.xml b/app/src/main/res/drawable/ic_xmrto_btc_off.xml index 5a49d3da..a0d67147 100644 --- a/app/src/main/res/drawable/ic_xmrto_btc_off.xml +++ b/app/src/main/res/drawable/ic_xmrto_btc_off.xml @@ -4,11 +4,11 @@ android:viewportWidth="32" android:viewportHeight="32"> diff --git a/app/src/main/res/drawable/ic_xmrto_dash_off.xml b/app/src/main/res/drawable/ic_xmrto_dash_off.xml index 28a712fd..e1836260 100644 --- a/app/src/main/res/drawable/ic_xmrto_dash_off.xml +++ b/app/src/main/res/drawable/ic_xmrto_dash_off.xml @@ -4,12 +4,12 @@ android:viewportWidth="32" android:viewportHeight="32"> diff --git a/app/src/main/res/drawable/ic_xmrto_doge_off.xml b/app/src/main/res/drawable/ic_xmrto_doge_off.xml index 51f0639a..c6c6a3b5 100644 --- a/app/src/main/res/drawable/ic_xmrto_doge_off.xml +++ b/app/src/main/res/drawable/ic_xmrto_doge_off.xml @@ -4,11 +4,11 @@ android:viewportWidth="32" android:viewportHeight="32"> diff --git a/app/src/main/res/drawable/ic_xmrto_eth_off.xml b/app/src/main/res/drawable/ic_xmrto_eth_off.xml index 04da5f01..55c71619 100644 --- a/app/src/main/res/drawable/ic_xmrto_eth_off.xml +++ b/app/src/main/res/drawable/ic_xmrto_eth_off.xml @@ -4,35 +4,35 @@ android:viewportWidth="32" android:viewportHeight="32"> diff --git a/app/src/main/res/drawable/ic_xmrto_logo.xml b/app/src/main/res/drawable/ic_xmrto_logo.xml index b4bc3f29..17058e2d 100644 --- a/app/src/main/res/drawable/ic_xmrto_logo.xml +++ b/app/src/main/res/drawable/ic_xmrto_logo.xml @@ -4,48 +4,48 @@ android:viewportWidth="404.08" android:viewportHeight="115"> diff --git a/app/src/main/res/drawable/ic_xmrto_ltc_off.xml b/app/src/main/res/drawable/ic_xmrto_ltc_off.xml index 663c2476..a78f33f0 100644 --- a/app/src/main/res/drawable/ic_xmrto_ltc_off.xml +++ b/app/src/main/res/drawable/ic_xmrto_ltc_off.xml @@ -4,11 +4,11 @@ android:viewportWidth="32" android:viewportHeight="32"> diff --git a/app/src/main/res/drawable/selector_login.xml b/app/src/main/res/drawable/selector_login.xml index 668fd24f..b62ad953 100644 --- a/app/src/main/res/drawable/selector_login.xml +++ b/app/src/main/res/drawable/selector_login.xml @@ -2,13 +2,13 @@ - + - + diff --git a/app/src/main/res/drawable/texture_cash.png b/app/src/main/res/drawable/texture_cash.png deleted file mode 100644 index bcd550b0..00000000 Binary files a/app/src/main/res/drawable/texture_cash.png and /dev/null differ diff --git a/app/src/main/res/layout/fragment_generate.xml b/app/src/main/res/layout/fragment_generate.xml index 8b2a2a99..cf6e4a8f 100644 --- a/app/src/main/res/layout/fragment_generate.xml +++ b/app/src/main/res/layout/fragment_generate.xml @@ -33,12 +33,12 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/header_top_first" - app:boxStrokeErrorColor="@color/monerujoPrimary" + android:layout_marginBottom="@dimen/header_top_first" + app:boxStrokeErrorColor="?colorPrimary" app:errorEnabled="true" app:errorIconDrawable="@drawable/ic_smiley_gunther_filled" - app:errorIconTint="@color/monerujoPrimary" - app:errorTextColor="@color/monerujoPrimary"> + app:errorIconTint="?colorPrimary" + app:errorTextColor="?colorPrimary"> + app:icon="@drawable/ic_keyboard_arrow_down" /> + android:layout_marginStart="8dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp"> + android:src="@drawable/ic_renew" /> + app:drawableStartCompat="@drawable/ic_nfc" /> diff --git a/app/src/main/res/layout/fragment_review.xml b/app/src/main/res/layout/fragment_review.xml index 6c1ac1b6..29af8dd2 100644 --- a/app/src/main/res/layout/fragment_review.xml +++ b/app/src/main/res/layout/fragment_review.xml @@ -89,7 +89,7 @@ android:layout_gravity="center" android:background="?android:selectableItemBackground" android:text="@string/label_seed_offset_encrypt" - app:icon="@drawable/ic_baseline_keyboard_arrow_down_24" /> + app:icon="@drawable/ic_keyboard_arrow_down" /> + app:icon="@drawable/ic_keyboard_arrow_down" /> diff --git a/app/src/main/res/layout/fragment_send_address.xml b/app/src/main/res/layout/fragment_send_address.xml index 8a857278..375e0f0e 100644 --- a/app/src/main/res/layout/fragment_send_address.xml +++ b/app/src/main/res/layout/fragment_send_address.xml @@ -214,7 +214,7 @@ android:gravity="center" android:text="@string/nfc_tag_tap" android:visibility="visible" - app:drawableStartCompat="@drawable/ic_nfc_black_24dp" /> + app:drawableStartCompat="@drawable/ic_nfc" /> diff --git a/app/src/main/res/layout/fragment_send_amount.xml b/app/src/main/res/layout/fragment_send_amount.xml index 7d70d95e..94d4a967 100644 --- a/app/src/main/res/layout/fragment_send_amount.xml +++ b/app/src/main/res/layout/fragment_send_amount.xml @@ -29,7 +29,7 @@ android:layout_alignParentEnd="true" android:paddingStart="12dp" android:paddingEnd="12dp" - android:src="@drawable/ic_all_inclusive_24dp" + android:src="@drawable/ic_all_inclusive" android:visibility="visible" /> @@ -45,7 +45,7 @@ android:id="@+id/rlSweep" android:layout_width="match_parent" android:layout_height="match_parent" - android:visibility="gone"> + android:visibility="visible"> + android:src="@drawable/ic_all_inclusive" /> + card_view:drawableEndCompat="@drawable/ic_launch_external" /> diff --git a/app/src/main/res/layout/fragment_subaddress.xml b/app/src/main/res/layout/fragment_subaddress.xml index ef34160e..e526d150 100644 --- a/app/src/main/res/layout/fragment_subaddress.xml +++ b/app/src/main/res/layout/fragment_subaddress.xml @@ -65,7 +65,7 @@ android:layout_gravity="bottom|end" android:backgroundTint="@android:color/transparent" android:backgroundTintMode="src_in" - android:src="@drawable/ic_add_white_24dp" + android:src="@drawable/ic_add" app:borderWidth="0dp" app:elevation="0dp" app:fabSize="normal" diff --git a/app/src/main/res/layout/fragment_tx_info.xml b/app/src/main/res/layout/fragment_tx_info.xml index 95a256fa..22963177 100644 --- a/app/src/main/res/layout/fragment_tx_info.xml +++ b/app/src/main/res/layout/fragment_tx_info.xml @@ -100,7 +100,6 @@ android:gravity="start" android:padding="8dp" android:selectAllOnFocus="true" - android:textColor="@color/gradientLeft" android:textIsSelectable="true" tools:text="1.008 BTC" /> @@ -171,7 +170,7 @@ android:drawablePadding="8dp" android:gravity="center" android:text="@string/label_send_btc_xmrto_info" - card_view:drawableEndCompat="@drawable/ic_baseline_launch_24" /> + card_view:drawableEndCompat="@drawable/ic_launch_external" /> diff --git a/app/src/main/res/layout/fragment_wallet.xml b/app/src/main/res/layout/fragment_wallet.xml index ad58b2c7..668f3b31 100644 --- a/app/src/main/res/layout/fragment_wallet.xml +++ b/app/src/main/res/layout/fragment_wallet.xml @@ -11,14 +11,16 @@ android:layout_gravity="bottom" android:scaleType="centerCrop" /> - @@ -126,33 +128,42 @@ android:layout_height="wrap_content" android:indeterminate="true" android:visibility="invisible" /> - - + android:layout_marginRight="8dp" + android:clipToPadding="false" + android:transitionGroup="true" + app:layoutManager="LinearLayoutManager" + tools:listitem="@layout/item_transaction" /> - + + + android:layout_height="1dp" + android:background="?android:attr/listDivider" /> @@ -161,7 +172,8 @@ style="@style/MoneroButton.Wallet" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_margin="8dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" android:layout_weight="1" android:enabled="false" android:text="@string/label_wallet_receive" @@ -173,14 +185,16 @@ style="@style/MoneroButton.Wallet" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_margin="8dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" android:layout_weight="1" android:enabled="false" android:text="@string/label_wallet_send" android:transitionName="@string/send_btn_transition_name" app:icon="@drawable/ic_send" /> - - - + + + + diff --git a/app/src/main/res/layout/item_node.xml b/app/src/main/res/layout/item_node.xml index e3ac81f5..873d1b6e 100644 --- a/app/src/main/res/layout/item_node.xml +++ b/app/src/main/res/layout/item_node.xml @@ -67,5 +67,5 @@ android:layout_alignParentEnd="true" android:layout_centerInParent="true" android:layout_marginEnd="8dp" - android:src="@drawable/ic_signal_wifi_4_bar_24dp" /> + android:src="@drawable/ic_wifi_4_bar" /> diff --git a/app/src/main/res/layout/item_subaddress.xml b/app/src/main/res/layout/item_subaddress.xml index 059f11dc..5348a287 100644 --- a/app/src/main/res/layout/item_subaddress.xml +++ b/app/src/main/res/layout/item_subaddress.xml @@ -39,7 +39,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/tvAddress" - android:textColor="@color/tx_plus" + android:textColor="?attr/positiveColor" app:layout_constraintBottom_toBottomOf="@id/tvName" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/item_transaction.xml b/app/src/main/res/layout/item_transaction.xml index f0075658..9edf678d 100644 --- a/app/src/main/res/layout/item_transaction.xml +++ b/app/src/main/res/layout/item_transaction.xml @@ -11,7 +11,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:padding="8dp"> + android:paddingTop="12dp" + android:paddingBottom="12dp" + android:paddingLeft="8dp" + android:paddingRight="8dp"> + android:src="@drawable/ic_navigate_next" /> diff --git a/app/src/main/res/layout/item_wallet.xml b/app/src/main/res/layout/item_wallet.xml index 0b918a14..4d18aef9 100644 --- a/app/src/main/res/layout/item_wallet.xml +++ b/app/src/main/res/layout/item_wallet.xml @@ -9,7 +9,9 @@ + android:background="@drawable/selector_login" + android:paddingTop="8dp" + android:paddingBottom="8dp"> - - + android:layout_above="@id/fabViewL" + android:layout_alignEnd="@id/fabImportL"> + android:layout_above="@id/fabKeyL" + android:layout_alignEnd="@id/fabImportL"> + android:layout_above="@id/fabSeedL" + android:layout_alignEnd="@id/fabImportL"> + android:layout_above="@id/fabImportL" + android:layout_alignEnd="@id/fabImportL"> + + + + + + + + - + @@ -190,11 +221,12 @@ android:layout_gravity="bottom|end" android:backgroundTint="@android:color/transparent" android:backgroundTintMode="src_in" - android:src="@drawable/ic_add_white_24dp" + android:src="@drawable/ic_add" app:borderWidth="0dp" app:elevation="0dp" app:fabSize="normal" - app:pressedTranslationZ="0dp" /> + app:pressedTranslationZ="0dp" + app:tint="?attr/toolbarTextColor" /> - + diff --git a/app/src/main/res/layout/prompt_changepw.xml b/app/src/main/res/layout/prompt_changepw.xml index c533024e..7d8e8f7f 100644 --- a/app/src/main/res/layout/prompt_changepw.xml +++ b/app/src/main/res/layout/prompt_changepw.xml @@ -15,11 +15,11 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="match_parent" android:layout_height="wrap_content" - app:boxStrokeErrorColor="@color/monerujoPrimary" + app:boxStrokeErrorColor="?colorPrimary" app:errorEnabled="true" app:errorIconDrawable="@drawable/ic_smiley_gunther_filled" - app:errorIconTint="@color/monerujoPrimary" - app:errorTextColor="@color/monerujoPrimary"> + app:errorIconTint="?colorPrimary" + app:errorTextColor="?colorPrimary"> + android:src="@drawable/ic_close_white_24dp" + app:tint="?colorOnSecondary" /> diff --git a/app/src/main/res/layout/view_toolbar.xml b/app/src/main/res/layout/view_toolbar.xml index a40209f8..0c16bbde 100644 --- a/app/src/main/res/layout/view_toolbar.xml +++ b/app/src/main/res/layout/view_toolbar.xml @@ -1,14 +1,16 @@ + android:background="?android:attr/selectableItemBackgroundBorderless" + android:padding="2dp" + android:src="@drawable/ic_settings" + app:tint="?attr/toolbarTextColor" /> + android:visibility="visible" + app:tint="?attr/toolbarTextColor" /> \ No newline at end of file diff --git a/app/src/main/res/menu/list_menu.xml b/app/src/main/res/menu/list_menu.xml index 33e2f6b6..f660304a 100644 --- a/app/src/main/res/menu/list_menu.xml +++ b/app/src/main/res/menu/list_menu.xml @@ -2,40 +2,10 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/menu/receive_menu.xml b/app/src/main/res/menu/receive_menu.xml index 51c92c7e..e3ece5c4 100644 --- a/app/src/main/res/menu/receive_menu.xml +++ b/app/src/main/res/menu/receive_menu.xml @@ -4,8 +4,9 @@ + app:showAsAction="always" /> \ No newline at end of file diff --git a/app/src/main/res/menu/tx_info_menu.xml b/app/src/main/res/menu/tx_info_menu.xml index 0587eed9..710ac36a 100644 --- a/app/src/main/res/menu/tx_info_menu.xml +++ b/app/src/main/res/menu/tx_info_menu.xml @@ -4,7 +4,7 @@ diff --git a/app/src/main/res/values-cat/strings.xml b/app/src/main/res/values-cat/strings.xml index 48c3fab9..bad25c1e 100644 --- a/app/src/main/res/values-cat/strings.xml +++ b/app/src/main/res/values-cat/strings.xml @@ -434,4 +434,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index adbfbe18..0e6ce4aa 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -435,4 +435,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 78542466..be5074b9 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -436,4 +436,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 6db51898..f6469732 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -436,4 +436,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 067eb577..4881b1e5 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -427,4 +427,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 1bddbd91..59116af4 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -434,4 +434,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c0d7b00d..1a1c4f94 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -440,4 +440,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 877d0457..8d3b1638 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -438,4 +438,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b65a7e71..607a48fc 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -439,4 +439,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ad491ad7..379034eb 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -439,4 +439,17 @@ タッチして詳細情報を見る Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 7760a570..4ff22222 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -436,4 +436,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-night-v23/styles.xml b/app/src/main/res/values-night-v23/styles.xml new file mode 100644 index 00000000..331c4506 --- /dev/null +++ b/app/src/main/res/values-night-v23/styles.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night-v27/styles.xml b/app/src/main/res/values-night-v27/styles.xml new file mode 100644 index 00000000..01650499 --- /dev/null +++ b/app/src/main/res/values-night-v27/styles.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 54d5cbc5..8216c428 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -1,17 +1,63 @@ - #430078 - @color/monerujoBackground + + #ffffff + @color/oled_textColorPrimary + @color/oled_gradientTopColor + @color/oled_colorBackground + @color/oled_colorOnBackground + @color/oled_gradientTopColor + @color/oled_gradientBottomColor + #F4F4F4 + @color/oled_negativeColor + #FF104E + #3FF3A5 + #FF104E + #838383 + #7E37F1 + @color/oled_colorBackground + #000000 + #1B1B1B + #070707 + #7E7E7E + #E0E0E0 + #B6B6B6 + #090909 + @color/oled_favouriteColor + @color/oled_colorPrimaryVariant + @color/oled_colorOnPrimary + @color/oled_favouriteColor + #ffffff - @color/monerujoPrimary - - #200C22 - #FFF6EF - #CCC3BD - #FF6252 - #27C79C - #FF1A80 - #20FF1A80 - #2D1A2E + + #ffffff + #FFF6EF + @color/classic_gradientTopColor + @color/classic_colorBackground + #430078 + #4E018A + #87009F + #ffffff + @color/classic_negativeColor + @color/classic_negativeColor + #27C79C + #FF1A80 + #ffffff + #FFAB1A + @color/classic_colorBackground + #200C22 + #ffffff + @color/classic_colorBackground + @color/classic_textColorPrimary + #FFF6EF + #CCC3BD + @color/classic_colorBackground + @color/classic_negativeColor + #F6FFEF + @color/classic_colorBackground + @color/classic_negativeColor + #FFF6EF + #FFF6EF + #2A142C diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 74ce628b..f8995194 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -1,34 +1,13 @@ - - \ No newline at end of file diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0743afc1..36faf705 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -436,4 +436,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ce28cbeb..67688cda 100755 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -429,4 +429,17 @@ aqui. Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 90d44934..a71b0967 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -440,4 +440,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 1ae3c8bb..a5529888 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -436,4 +436,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 867abdbb..fb9e1285 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -440,4 +440,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index bbf75676..e1bf73c4 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -437,4 +437,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index b6eedda2..8e8b44a2 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -435,4 +435,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 694c3753..8bfc334a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -428,4 +428,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 93665d75..ad6796f5 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -440,4 +440,17 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-v23/styles.xml b/app/src/main/res/values-v23/styles.xml new file mode 100644 index 00000000..2706f119 --- /dev/null +++ b/app/src/main/res/values-v23/styles.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml new file mode 100644 index 00000000..798a43da --- /dev/null +++ b/app/src/main/res/values-v27/styles.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index aafeac1a..36c80792 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -360,4 +360,17 @@ 点击以查看详情 Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index a6003f1e..32f5f27a 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -435,4 +435,17 @@ 點選以獲得詳細資訊 Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml new file mode 100644 index 00000000..ec8b9ad5 --- /dev/null +++ b/app/src/main/res/values/arrays.xml @@ -0,0 +1,13 @@ + + + AUTO + DAY + NIGHT + + + + Classic + Oled + + + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index faaca86f..4d0e9b43 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -10,4 +10,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bb315d09..708f928a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,35 +1,63 @@ - #FF006B - #FF6105 + + #000000 + @color/oled_textColorPrimary + @color/oled_gradientTopColor + @color/oled_colorBackground + #eeeeee + @color/oled_gradientTopColor + @color/oled_colorBackground + @color/oled_colorOnBackground + #FFDB72 + @color/oled_favouriteColor + #27C79C + #FF3C79 + #171717 + #3DC2FF + #000000 + #ffffff + #232323 + @color/oled_colorBackground + @color/oled_colorOnBackground + #2E2E2E + #6A6A6A + #ffffff + @color/oled_negativeColor + @color/oled_colorBackground + @color/oled_colorOnBackground + @color/oled_negativeColor + @color/oled_colorBackground - @color/monerujoOrange - @color/monerujoPink - - @color/monerujoBackground - - #FFF6EF - #2D1A2E - #CCC3BD - #FA5544 - #00C691 - #F0006B - #20F0006B - #FFFDFB - - @color/monerujoGreen - @color/monerujoOrange - #D81F0759 - #D819001E - - @color/monerujoPrimary - @color/monerujoPrimaryVariant - - @color/monerujoPrimaryVariant - @color/monerujoPrimaryVariant - @color/monerujoGreen - @color/monerujoOrange - - #1f4e97 + + #0C080C + #392F39 + @color/classic_gradientTopColor + #FF6105 + #FF006B + #D81F0759 + #D819001E + #FFF6EF + @color/classic_gradientBottomColor + @color/classic_gradientBottomColor + #00C691 + @color/classic_gradientBottomColor + @color/classic_positiveColor + #1f4e97 + @color/classic_colorOnBackground + #FFF6EF + #0C080C + #FFF6EF + #2D1A2E + #2D1A2E + #825985 + #FFF6EF + @color/classic_gradientBottomColor + #BC0050 + #FFF6EF + @color/classic_gradientBottomColor + #FFF6EF + #573059 + #FFF6EF diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9534970..efd5f4ed 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -510,4 +510,24 @@ Seed encryption (EXPERIMENTAL) Seed Offset Phrase (optional) + + preferred_theme + preferred_nightmode + preferred_locale + about_info + privacy_info + credits_info + + Settings + Interface + Information + Day / Night + + Style + + Classic + Baldaŭ + + + Failed to create QR for sharing! diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f1427dc0..11639113 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -4,27 +4,68 @@ + + +