Fix lint issues
This commit is contained in:
parent
d6ea6c742f
commit
72b333681c
@ -50,6 +50,9 @@ android {
|
|||||||
lintOptions {
|
lintOptions {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
warning 'MissingTranslation'
|
warning 'MissingTranslation'
|
||||||
|
disable 'ContentDescription'
|
||||||
|
// floating icon is semi-transparent
|
||||||
|
disable 'IconLauncherShape'
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_7
|
sourceCompatibility JavaVersion.VERSION_1_7
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="org.solovyev.android.calculator"
|
package="org.solovyev.android.calculator"
|
||||||
android:installLocation="auto">
|
android:installLocation="auto">
|
||||||
|
|
||||||
@ -25,7 +26,8 @@
|
|||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:label="@string/c_app_name"
|
android:label="@string/c_app_name"
|
||||||
android:theme="@style/Cpp.Theme.Material">
|
android:theme="@style/Cpp.Theme.Material"
|
||||||
|
tools:ignore="UnusedAttribute">
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="com.google.android.gms.version"
|
android:name="com.google.android.gms.version"
|
||||||
@ -210,6 +212,7 @@
|
|||||||
<!-- Google Analytics -->
|
<!-- Google Analytics -->
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
|
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
|
||||||
|
android:exported="false"
|
||||||
android:enabled="true">
|
android:enabled="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
|
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
|
||||||
|
@ -44,27 +44,27 @@ import javax.annotation.Nullable;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class VariablesRegistry extends BaseEntitiesRegistry<IConstant> {
|
public class VariablesRegistry extends BaseEntitiesRegistry<IConstant> {
|
||||||
|
{
|
||||||
@Nonnull
|
addDescription("Π", R.string.c_var_description_PI);
|
||||||
private static final Map<String, String> substitutes = new HashMap<>();
|
addDescription("π", R.string.c_var_description_pi);
|
||||||
|
addDescription("e", R.string.c_var_description_e);
|
||||||
static {
|
addDescription("i", R.string.c_var_description_i);
|
||||||
substitutes.put("π", "pi");
|
addDescription("c", R.string.c_var_description_c);
|
||||||
substitutes.put("Π", "PI");
|
addDescription("G", R.string.c_var_description_G);
|
||||||
substitutes.put("∞", "inf");
|
addDescription("h", R.string.c_var_description_h_reduced);
|
||||||
substitutes.put("h", "h_reduced");
|
addDescription("∞", R.string.c_var_description_inf);
|
||||||
substitutes.put("NaN", "nan");
|
addDescription("inf", R.string.c_var_description_inf);
|
||||||
|
addDescription("nan", R.string.c_var_description_nan);
|
||||||
|
addDescription("NaN", R.string.c_var_description_nan);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public VariablesRegistry(@Nonnull JsclMathEngine mathEngine) {
|
public VariablesRegistry(@Nonnull JsclMathEngine mathEngine) {
|
||||||
super(mathEngine.getConstantsRegistry(), "c_var_description_");
|
super(mathEngine.getConstantsRegistry());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addOrUpdate(@Nonnull IConstant newVariable, @Nullable IConstant oldVariable) {
|
public void addOrUpdate(@Nonnull IConstant newVariable, @Nullable IConstant oldVariable) {
|
||||||
@ -82,12 +82,6 @@ public class VariablesRegistry extends BaseEntitiesRegistry<IConstant> {
|
|||||||
bus.post(new RemovedEvent(variable));
|
bus.post(new RemovedEvent(variable));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
protected Map<String, String> getSubstitutes() {
|
|
||||||
return substitutes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
Check.isNotMainThread();
|
Check.isNotMainThread();
|
||||||
|
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2013 serso aka se.solovyev
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*
|
|
||||||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
* Contact details
|
|
||||||
*
|
|
||||||
* Email: se.solovyev@gmail.com
|
|
||||||
* Site: http://se.solovyev.org
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.solovyev.android.calculator.about;
|
|
||||||
|
|
||||||
import android.content.res.Resources;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* User: serso
|
|
||||||
* Date: 4/20/12
|
|
||||||
* Time: 3:31 PM
|
|
||||||
*/
|
|
||||||
public class TextHelper {
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public String packageName;
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public Resources resources;
|
|
||||||
|
|
||||||
public TextHelper(@Nonnull Resources resources, @Nonnull String packageName) {
|
|
||||||
this.packageName = packageName;
|
|
||||||
this.resources = resources;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public String getText(@Nonnull String stringName) {
|
|
||||||
final int stringId = this.resources.getIdentifier(stringName, "string", this.packageName);
|
|
||||||
try {
|
|
||||||
if (stringId == 0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return resources.getString(stringId);
|
|
||||||
} catch (Resources.NotFoundException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -390,7 +390,7 @@ public class ConverterFragment extends BaseDialogFragment
|
|||||||
ELECTRIC_CURRENT(Dimension.ELECTRIC_CURRENT, R.string.cpp_converter_electric_current),
|
ELECTRIC_CURRENT(Dimension.ELECTRIC_CURRENT, R.string.cpp_converter_electric_current),
|
||||||
LENGTH(Dimension.LENGTH, R.string.cpp_converter_length),
|
LENGTH(Dimension.LENGTH, R.string.cpp_converter_length),
|
||||||
MASS(Dimension.MASS, R.string.cpp_converter_mass),
|
MASS(Dimension.MASS, R.string.cpp_converter_mass),
|
||||||
TEMPERATURE(Dimension.TEMPERATURE, R.string.cpp_converter_termperature);
|
TEMPERATURE(Dimension.TEMPERATURE, R.string.cpp_converter_temperature);
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public final Dimension dimension;
|
public final Dimension dimension;
|
||||||
|
@ -23,16 +23,17 @@
|
|||||||
package org.solovyev.android.calculator.entities;
|
package org.solovyev.android.calculator.entities;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.StringRes;
|
||||||
import com.squareup.otto.Bus;
|
import com.squareup.otto.Bus;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.solovyev.android.Check;
|
import org.solovyev.android.Check;
|
||||||
import org.solovyev.android.calculator.*;
|
import org.solovyev.android.calculator.AppModule;
|
||||||
|
import org.solovyev.android.calculator.EntitiesRegistry;
|
||||||
|
import org.solovyev.android.calculator.ErrorReporter;
|
||||||
import org.solovyev.android.calculator.json.Json;
|
import org.solovyev.android.calculator.json.Json;
|
||||||
import org.solovyev.android.calculator.json.Jsonable;
|
import org.solovyev.android.calculator.json.Jsonable;
|
||||||
import org.solovyev.android.io.FileSaver;
|
import org.solovyev.android.io.FileSaver;
|
||||||
@ -46,10 +47,7 @@ import javax.inject.Inject;
|
|||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
public abstract class BaseEntitiesRegistry<T extends MathEntity> implements EntitiesRegistry<T> {
|
public abstract class BaseEntitiesRegistry<T extends MathEntity> implements EntitiesRegistry<T> {
|
||||||
@ -58,8 +56,6 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity> implements Enti
|
|||||||
protected final Object lock = this;
|
protected final Object lock = this;
|
||||||
@Nonnull
|
@Nonnull
|
||||||
private final MathRegistry<T> mathRegistry;
|
private final MathRegistry<T> mathRegistry;
|
||||||
@Nonnull
|
|
||||||
private final String prefix;
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private final WriteTask writeTask = new WriteTask();
|
private final WriteTask writeTask = new WriteTask();
|
||||||
@Inject
|
@Inject
|
||||||
@ -81,33 +77,29 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity> implements Enti
|
|||||||
@Named(AppModule.DIR_FILES)
|
@Named(AppModule.DIR_FILES)
|
||||||
public File filesDir;
|
public File filesDir;
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private final Map<String, Integer> descriptions = new HashMap<>();
|
||||||
|
|
||||||
// synchronized on lock
|
// synchronized on lock
|
||||||
private boolean initialized;
|
private boolean initialized;
|
||||||
|
|
||||||
protected BaseEntitiesRegistry(@Nonnull MathRegistry<T> mathRegistry,
|
protected BaseEntitiesRegistry(@Nonnull MathRegistry<T> mathRegistry) {
|
||||||
@Nonnull String prefix) {
|
|
||||||
this.mathRegistry = mathRegistry;
|
this.mathRegistry = mathRegistry;
|
||||||
this.prefix = prefix;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void addDescription(@Nonnull String name, @StringRes int description) {
|
||||||
@Nonnull
|
descriptions.put(name, description);
|
||||||
protected abstract Map<String, String> getSubstitutes();
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public String getDescription(@Nonnull String name) {
|
public String getDescription(@Nonnull String name) {
|
||||||
final String stringName;
|
final Integer description = descriptions.get(name);
|
||||||
|
if (description == null || description == 0) {
|
||||||
final Map<String, String> substitutes = getSubstitutes();
|
return null;
|
||||||
final String substitute = substitutes.get(name);
|
|
||||||
if (substitute == null) {
|
|
||||||
stringName = prefix + name;
|
|
||||||
} else {
|
|
||||||
stringName = prefix + substitute;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return getDescription(application, stringName);
|
return application.getResources().getString(description);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -115,18 +107,6 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity> implements Enti
|
|||||||
setInitialized();
|
setInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public String getDescription(@Nonnull Context context, @Nonnull String descriptionId) {
|
|
||||||
final Resources resources = context.getResources();
|
|
||||||
|
|
||||||
final int stringId = resources.getIdentifier(descriptionId, "string", CalculatorApplication.class.getPackage().getName());
|
|
||||||
try {
|
|
||||||
return resources.getString(stringId);
|
|
||||||
} catch (Resources.NotFoundException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
protected final <E> List<E> loadEntities(@NonNull Json.Creator<E> creator) {
|
protected final <E> List<E> loadEntities(@NonNull Json.Creator<E> creator) {
|
||||||
final File file = getEntitiesFile();
|
final File file = getEntitiesFile();
|
||||||
|
@ -30,6 +30,7 @@ import jscl.math.function.IFunction;
|
|||||||
import org.simpleframework.xml.Serializer;
|
import org.simpleframework.xml.Serializer;
|
||||||
import org.simpleframework.xml.core.Persister;
|
import org.simpleframework.xml.core.Persister;
|
||||||
import org.solovyev.android.Check;
|
import org.solovyev.android.Check;
|
||||||
|
import org.solovyev.android.calculator.R;
|
||||||
import org.solovyev.android.calculator.entities.BaseEntitiesRegistry;
|
import org.solovyev.android.calculator.entities.BaseEntitiesRegistry;
|
||||||
import org.solovyev.android.calculator.entities.Category;
|
import org.solovyev.android.calculator.entities.Category;
|
||||||
import org.solovyev.android.calculator.entities.Entities;
|
import org.solovyev.android.calculator.entities.Entities;
|
||||||
@ -43,23 +44,47 @@ import javax.annotation.Nullable;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static android.text.TextUtils.isEmpty;
|
import static android.text.TextUtils.isEmpty;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class FunctionsRegistry extends BaseEntitiesRegistry<Function> {
|
public class FunctionsRegistry extends BaseEntitiesRegistry<Function> {
|
||||||
|
|
||||||
@Nonnull
|
{
|
||||||
private static final Map<String, String> substitutes = new HashMap<>();
|
addDescription("sin", R.string.c_fun_description_sin);
|
||||||
|
addDescription("cos", R.string.c_fun_description_cos);
|
||||||
static {
|
addDescription("tan", R.string.c_fun_description_tan);
|
||||||
substitutes.put("√", "sqrt");
|
addDescription("cot", R.string.c_fun_description_cot);
|
||||||
|
addDescription("asin", R.string.c_fun_description_asin);
|
||||||
|
addDescription("acos", R.string.c_fun_description_acos);
|
||||||
|
addDescription("atan", R.string.c_fun_description_atan);
|
||||||
|
addDescription("acot", R.string.c_fun_description_acot);
|
||||||
|
addDescription("ln", R.string.c_fun_description_ln);
|
||||||
|
addDescription("lg", R.string.c_fun_description_lg);
|
||||||
|
addDescription("log", R.string.c_fun_description_log);
|
||||||
|
addDescription("exp", R.string.c_fun_description_exp);
|
||||||
|
addDescription("√", R.string.c_fun_description_sqrt);
|
||||||
|
addDescription("sqrt", R.string.c_fun_description_sqrt);
|
||||||
|
addDescription("cubic", R.string.c_fun_description_cubic);
|
||||||
|
addDescription("abs", R.string.c_fun_description_abs);
|
||||||
|
addDescription("sgn", R.string.c_fun_description_sgn);
|
||||||
|
addDescription("eq", R.string.c_fun_description_eq);
|
||||||
|
addDescription("le", R.string.c_fun_description_le);
|
||||||
|
addDescription("ge", R.string.c_fun_description_ge);
|
||||||
|
addDescription("ne", R.string.c_fun_description_ne);
|
||||||
|
addDescription("lt", R.string.c_fun_description_lt);
|
||||||
|
addDescription("gt", R.string.c_fun_description_gt);
|
||||||
|
addDescription("rad", R.string.c_fun_description_rad);
|
||||||
|
addDescription("dms", R.string.c_fun_description_dms);
|
||||||
|
addDescription("deg", R.string.c_fun_description_deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public FunctionsRegistry(@Nonnull JsclMathEngine mathEngine) {
|
public FunctionsRegistry(@Nonnull JsclMathEngine mathEngine) {
|
||||||
super(mathEngine.getFunctionsRegistry(), "c_fun_description_");
|
super(mathEngine.getFunctionsRegistry());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addOrUpdate(@Nonnull Function newFunction, @Nullable Function oldFunction) {
|
public void addOrUpdate(@Nonnull Function newFunction, @Nullable Function oldFunction) {
|
||||||
@ -91,6 +116,7 @@ public class FunctionsRegistry extends BaseEntitiesRegistry<Function> {
|
|||||||
setInitialized();
|
setInitialized();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
protected Function addSafely(@Nonnull CustomFunction.Builder builder) {
|
protected Function addSafely(@Nonnull CustomFunction.Builder builder) {
|
||||||
try {
|
try {
|
||||||
@ -141,12 +167,6 @@ public class FunctionsRegistry extends BaseEntitiesRegistry<Function> {
|
|||||||
return new File(filesDir, "functions.json");
|
return new File(filesDir, "functions.json");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
protected Map<String, String> getSubstitutes() {
|
|
||||||
return substitutes;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Category getCategory(@Nonnull Function function) {
|
public Category getCategory(@Nonnull Function function) {
|
||||||
return Entities.getCategory(function, FunctionCategory.values());
|
return Entities.getCategory(function, FunctionCategory.values());
|
||||||
|
@ -25,6 +25,7 @@ package org.solovyev.android.calculator.operators;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import jscl.JsclMathEngine;
|
import jscl.JsclMathEngine;
|
||||||
import jscl.math.operator.Operator;
|
import jscl.math.operator.Operator;
|
||||||
|
import org.solovyev.android.calculator.R;
|
||||||
import org.solovyev.android.calculator.entities.BaseEntitiesRegistry;
|
import org.solovyev.android.calculator.entities.BaseEntitiesRegistry;
|
||||||
import org.solovyev.android.calculator.entities.Category;
|
import org.solovyev.android.calculator.entities.Category;
|
||||||
import org.solovyev.android.calculator.entities.Entities;
|
import org.solovyev.android.calculator.entities.Entities;
|
||||||
@ -35,33 +36,23 @@ import javax.annotation.Nullable;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class OperatorsRegistry extends BaseEntitiesRegistry<Operator> {
|
public class OperatorsRegistry extends BaseEntitiesRegistry<Operator> {
|
||||||
|
|
||||||
@Nonnull
|
{
|
||||||
private static final Map<String, String> substitutes = new HashMap<String, String>();
|
addDescription("mod", R.string.c_op_description_mod);
|
||||||
|
addDescription("Σ", R.string.c_op_description_sum);
|
||||||
static {
|
addDescription("∏", R.string.c_op_description_product);
|
||||||
substitutes.put("Σ", "sum");
|
addDescription("∂", R.string.c_op_description_derivative);
|
||||||
substitutes.put("∏", "product");
|
addDescription("∫ab", R.string.c_op_description_integral_ab);
|
||||||
substitutes.put("∂", "derivative");
|
addDescription("∫", R.string.c_op_description_integral);
|
||||||
substitutes.put("∫ab", "integral_ab");
|
addDescription("Σ", R.string.c_op_description_sum);
|
||||||
substitutes.put("∫", "integral");
|
|
||||||
substitutes.put("Σ", "sum");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public OperatorsRegistry(@Nonnull JsclMathEngine mathEngine) {
|
public OperatorsRegistry(@Nonnull JsclMathEngine mathEngine) {
|
||||||
super(mathEngine.getOperatorsRegistry(), "c_op_description_");
|
super(mathEngine.getOperatorsRegistry());
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
protected Map<String, String> getSubstitutes() {
|
|
||||||
return substitutes;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -25,6 +25,7 @@ package org.solovyev.android.calculator.operators;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import jscl.JsclMathEngine;
|
import jscl.JsclMathEngine;
|
||||||
import jscl.math.operator.Operator;
|
import jscl.math.operator.Operator;
|
||||||
|
import org.solovyev.android.calculator.R;
|
||||||
import org.solovyev.android.calculator.entities.BaseEntitiesRegistry;
|
import org.solovyev.android.calculator.entities.BaseEntitiesRegistry;
|
||||||
import org.solovyev.android.calculator.entities.Category;
|
import org.solovyev.android.calculator.entities.Category;
|
||||||
import org.solovyev.android.calculator.entities.Entities;
|
import org.solovyev.android.calculator.entities.Entities;
|
||||||
@ -35,31 +36,20 @@ import javax.annotation.Nullable;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator> {
|
public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator> {
|
||||||
|
|
||||||
@Nonnull
|
{
|
||||||
private static final Map<String, String> substitutes = new HashMap<String, String>();
|
addDescription("%", R.string.c_pf_description_percent);
|
||||||
|
addDescription("!", R.string.c_pf_description_factorial);
|
||||||
static {
|
addDescription("!!", R.string.c_pf_description_double_factorial);
|
||||||
substitutes.put("%", "percent");
|
addDescription("°", R.string.c_pf_description_degree);
|
||||||
substitutes.put("!", "factorial");
|
|
||||||
substitutes.put("!!", "double_factorial");
|
|
||||||
substitutes.put("°", "degree");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public PostfixFunctionsRegistry(@Nonnull JsclMathEngine mathEngine) {
|
public PostfixFunctionsRegistry(@Nonnull JsclMathEngine mathEngine) {
|
||||||
super(mathEngine.getPostfixFunctionsRegistry(), "c_pf_description_");
|
super(mathEngine.getPostfixFunctionsRegistry());
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
protected Map<String, String> getSubstitutes() {
|
|
||||||
return substitutes;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package org.solovyev.android.calculator.release;
|
||||||
|
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.StringRes;
|
||||||
|
|
||||||
|
public class ReleaseNote {
|
||||||
|
@NonNull
|
||||||
|
public final String versionName;
|
||||||
|
@StringRes
|
||||||
|
public final int description;
|
||||||
|
|
||||||
|
private ReleaseNote(@NonNull String versionName, int description) {
|
||||||
|
this.versionName = versionName;
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public static ReleaseNote make(@NonNull String versionName, int description) {
|
||||||
|
return new ReleaseNote(versionName, description);
|
||||||
|
}
|
||||||
|
}
|
@ -6,12 +6,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.google.common.base.Strings;
|
|
||||||
|
|
||||||
import org.solovyev.android.calculator.CalculatorApplication;
|
|
||||||
import org.solovyev.android.calculator.R;
|
import org.solovyev.android.calculator.R;
|
||||||
import org.solovyev.android.calculator.about.TextHelper;
|
|
||||||
import org.solovyev.android.calculator.wizard.WizardFragment;
|
import org.solovyev.android.calculator.wizard.WizardFragment;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
@ -33,25 +28,14 @@ public class ReleaseNoteFragment extends WizardFragment {
|
|||||||
version = getArguments().getInt(ARG_VERSION, 0);
|
version = getArguments().getInt(ARG_VERSION, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
final View view = super.onCreateView(inflater, container, savedInstanceState);
|
final View view = super.onCreateView(inflater, container, savedInstanceState);
|
||||||
final TextView title = (TextView) view.findViewById(R.id.release_note_title);
|
final TextView title = (TextView) view.findViewById(R.id.release_note_title);
|
||||||
final TextHelper textHelper = new TextHelper(getActivity().getResources(), CalculatorApplication.class.getPackage().getName());
|
title.setText(getString(R.string.cpp_new_in_version, ReleaseNotes.getReleaseNoteVersion(version)));
|
||||||
title.setText(getString(R.string.cpp_new_in_version, getReleaseNoteVersion(textHelper)));
|
|
||||||
final TextView message = (TextView) view.findViewById(R.id.release_note_message);
|
final TextView message = (TextView) view.findViewById(R.id.release_note_message);
|
||||||
message.setText(Html.fromHtml(getReleaseNote(textHelper)));
|
message.setText(Html.fromHtml(ReleaseNotes.getReleaseNoteDescription(getActivity(), version)));
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
private String getReleaseNoteVersion(@Nonnull TextHelper textHelper) {
|
|
||||||
return ReleaseNotes.getVersionName(textHelper, version);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
private String getReleaseNote(@Nonnull TextHelper textHelper) {
|
|
||||||
final String resourceId = ReleaseNotes.makeReleaseNotesResourceId(version);
|
|
||||||
return Strings.nullToEmpty(textHelper.getText(resourceId)).replace("\n", "<br/>");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package org.solovyev.android.calculator.release;
|
package org.solovyev.android.calculator.release;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.util.SparseArray;
|
||||||
import org.solovyev.android.calculator.App;
|
import org.solovyev.android.calculator.App;
|
||||||
import org.solovyev.android.calculator.CalculatorApplication;
|
|
||||||
import org.solovyev.android.calculator.R;
|
import org.solovyev.android.calculator.R;
|
||||||
import org.solovyev.android.calculator.about.TextHelper;
|
|
||||||
import org.solovyev.common.text.Strings;
|
import org.solovyev.common.text.Strings;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
@ -13,11 +12,30 @@ import java.util.List;
|
|||||||
|
|
||||||
public final class ReleaseNotes {
|
public final class ReleaseNotes {
|
||||||
|
|
||||||
|
private static final SparseArray<ReleaseNote> map = new SparseArray<>();
|
||||||
|
static {
|
||||||
|
map.put(118, ReleaseNote.make("2.0.0", R.string.c_release_notes_for_118));
|
||||||
|
map.put(141, ReleaseNote.make("2.1.2", R.string.c_release_notes_for_141));
|
||||||
|
map.put(143, ReleaseNote.make("2.1.4", R.string.c_release_notes_for_143));
|
||||||
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static String getReleaseNotes(@Nonnull Context context) {
|
public static String getReleaseNotes(@Nonnull Context context) {
|
||||||
return getReleaseNotesString(context, 0);
|
return getReleaseNotesString(context, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
public static String getReleaseNoteVersion(int version) {
|
||||||
|
final ReleaseNote releaseNote = map.get(version);
|
||||||
|
return releaseNote == null ? String.valueOf(version) : releaseNote.versionName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
public static String getReleaseNoteDescription(@Nonnull Context context, int version) {
|
||||||
|
final ReleaseNote releaseNote = map.get(version);
|
||||||
|
return releaseNote == null ? "" : context.getString(releaseNote.description);
|
||||||
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static String getReleaseNotesString(@Nonnull Context context, int minVersion) {
|
public static String getReleaseNotesString(@Nonnull Context context, int minVersion) {
|
||||||
final StringBuilder result = new StringBuilder();
|
final StringBuilder result = new StringBuilder();
|
||||||
@ -25,22 +43,21 @@ public final class ReleaseNotes {
|
|||||||
final String releaseNotesForTitle = context.getString(R.string.c_release_notes_for_title);
|
final String releaseNotesForTitle = context.getString(R.string.c_release_notes_for_title);
|
||||||
final int currentVersionCode = App.getAppVersionCode(context);
|
final int currentVersionCode = App.getAppVersionCode(context);
|
||||||
|
|
||||||
final TextHelper textHelper = new TextHelper(context.getResources(), CalculatorApplication.class.getPackage().getName());
|
|
||||||
|
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
for (int versionCode = currentVersionCode; versionCode >= minVersion; versionCode--) {
|
for (int versionCode = currentVersionCode; versionCode >= minVersion; versionCode--) {
|
||||||
final String versionName = getVersionName(textHelper, versionCode);
|
final ReleaseNote releaseNote = map.get(versionCode);
|
||||||
String releaseNotesForVersion = textHelper.getText(makeReleaseNotesResourceId(versionCode));
|
if (releaseNote == null) {
|
||||||
if (!Strings.isEmpty(releaseNotesForVersion)) {
|
continue;
|
||||||
|
}
|
||||||
if (!first) {
|
if (!first) {
|
||||||
result.append("<br/><br/>");
|
result.append("<br/><br/>");
|
||||||
} else {
|
} else {
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
releaseNotesForVersion = releaseNotesForVersion.replace("\n", "<br/>");
|
final String description = context.getResources().getString(releaseNote.description);
|
||||||
result.append("<b>").append(releaseNotesForTitle).append(versionName).append("</b><br/><br/>");
|
final String descriptionHtml = description.replace("\n", "<br/>");
|
||||||
result.append(releaseNotesForVersion);
|
result.append("<b>").append(releaseNotesForTitle).append(releaseNote.versionName).append("</b><br/><br/>");
|
||||||
}
|
result.append(descriptionHtml);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result.toString();
|
return result.toString();
|
||||||
@ -51,14 +68,17 @@ public final class ReleaseNotes {
|
|||||||
final List<Integer> releaseNotes = new ArrayList<>();
|
final List<Integer> releaseNotes = new ArrayList<>();
|
||||||
|
|
||||||
final int currentVersionCode = App.getAppVersionCode(context);
|
final int currentVersionCode = App.getAppVersionCode(context);
|
||||||
final TextHelper textHelper = new TextHelper(context.getResources(), CalculatorApplication.class.getPackage().getName());
|
|
||||||
|
|
||||||
for (int versionCode = currentVersionCode; versionCode >= minVersion; versionCode--) {
|
for (int versionCode = currentVersionCode; versionCode >= minVersion; versionCode--) {
|
||||||
if (versionCode == ChooseThemeReleaseNoteStep.VERSION_CODE) {
|
if (versionCode == ChooseThemeReleaseNoteStep.VERSION_CODE) {
|
||||||
releaseNotes.add(ChooseThemeReleaseNoteStep.VERSION_CODE);
|
releaseNotes.add(ChooseThemeReleaseNoteStep.VERSION_CODE);
|
||||||
}
|
}
|
||||||
final String releaseNotesForVersion = textHelper.getText(makeReleaseNotesResourceId(versionCode));
|
final ReleaseNote releaseNote = map.get(versionCode);
|
||||||
if (!Strings.isEmpty(releaseNotesForVersion)) {
|
if (releaseNote == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
final String description = context.getString(releaseNote.description);
|
||||||
|
if (!Strings.isEmpty(description)) {
|
||||||
releaseNotes.add(versionCode);
|
releaseNotes.add(versionCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -68,36 +88,20 @@ public final class ReleaseNotes {
|
|||||||
|
|
||||||
public static boolean hasReleaseNotes(@Nonnull Context context, int minVersion) {
|
public static boolean hasReleaseNotes(@Nonnull Context context, int minVersion) {
|
||||||
final int currentVersionCode = App.getAppVersionCode(context);
|
final int currentVersionCode = App.getAppVersionCode(context);
|
||||||
final TextHelper textHelper = new TextHelper(context.getResources(), CalculatorApplication.class.getPackage().getName());
|
|
||||||
|
|
||||||
for (int versionCode = currentVersionCode; versionCode >= minVersion; versionCode--) {
|
for (int versionCode = currentVersionCode; versionCode >= minVersion; versionCode--) {
|
||||||
if (versionCode == ChooseThemeReleaseNoteStep.VERSION_CODE) {
|
if (versionCode == ChooseThemeReleaseNoteStep.VERSION_CODE) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
String releaseNotesForVersion = textHelper.getText(makeReleaseNotesResourceId(versionCode));
|
final ReleaseNote releaseNote = map.get(versionCode);
|
||||||
if (!Strings.isEmpty(releaseNotesForVersion)) {
|
if (releaseNote == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!Strings.isEmpty(context.getString(releaseNote.description))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public static String getVersionName(@Nonnull TextHelper textHelper, int versionCode) {
|
|
||||||
final String versionName = textHelper.getText(makeVersionResourceId(versionCode));
|
|
||||||
if (versionName != null) {
|
|
||||||
return versionName;
|
|
||||||
} else {
|
|
||||||
return String.valueOf(versionCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String makeReleaseNotesResourceId(int versionCode) {
|
|
||||||
return "c_release_notes_for_" + versionCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String makeVersionResourceId(int versionCode) {
|
|
||||||
return "c_release_notes_for_" + versionCode + "_version";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,8 @@ import android.widget.TextView;
|
|||||||
import org.solovyev.android.calculator.App;
|
import org.solovyev.android.calculator.App;
|
||||||
import org.solovyev.android.calculator.R;
|
import org.solovyev.android.calculator.R;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public final class WelcomeWizardStep extends WizardFragment {
|
public final class WelcomeWizardStep extends WizardFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -38,6 +40,7 @@ public final class WelcomeWizardStep extends WizardFragment {
|
|||||||
return R.layout.cpp_wizard_step_welcome;
|
return R.layout.cpp_wizard_step_welcome;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
final View view = super.onCreateView(inflater, container, savedInstanceState);
|
final View view = super.onCreateView(inflater, container, savedInstanceState);
|
||||||
|
@ -68,6 +68,7 @@ public abstract class WizardFragment extends Fragment implements View.OnClickLis
|
|||||||
throw new AssertionError("Wizard step for class " + getClass() + " was not found");
|
throw new AssertionError("Wizard step for class " + getClass() + " was not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
final View view = inflater.inflate(R.layout.fragment_wizard, container, false);
|
final View view = inflater.inflate(R.layout.fragment_wizard, container, false);
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
package org.solovyev.common.text;
|
package org.solovyev.common.text;
|
||||||
|
|
||||||
|
import org.solovyev.android.Check;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -74,7 +76,7 @@ public class NumberMapper<N extends Number> implements Mapper<N> {
|
|||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static <N extends Number> Mapper<N> of(@Nonnull Class<? extends N> clazz) {
|
public static <N extends Number> Mapper<N> of(@Nonnull Class<? extends N> clazz) {
|
||||||
assert supportedClasses.contains(clazz) : "Class " + clazz + " is not supported by " + NumberMapper.class;
|
Check.isTrue(supportedClasses.contains(clazz), "Class " + clazz + " is not supported by " + NumberMapper.class);
|
||||||
return (Mapper<N>) mappers.get(clazz);
|
return (Mapper<N>) mappers.get(clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
package org.solovyev.common.text;
|
package org.solovyev.common.text;
|
||||||
|
|
||||||
|
import org.solovyev.android.Check;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -50,7 +52,7 @@ public class NumberParser<N extends Number> implements Parser<N> {
|
|||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static <N extends Number> Parser<N> of(@Nonnull Class<N> clazz) {
|
public static <N extends Number> Parser<N> of(@Nonnull Class<N> clazz) {
|
||||||
assert supportedClasses.contains(clazz) : "Class " + clazz + " is not supported by " + NumberParser.class;
|
Check.isTrue(supportedClasses.contains(clazz), "Class " + clazz + " is not supported by " + NumberParser.class);
|
||||||
return (Parser<N>) parsers.get(clazz);
|
return (Parser<N>) parsers.get(clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 698 B |
Binary file not shown.
Before Width: | Height: | Size: 496 B |
@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
|
||||||
a:color="@color/ripple_material_dark">
|
|
||||||
<item a:drawable="@drawable/cpp_wizard_button_shape_normal" />
|
|
||||||
</ripple>
|
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/blue_900" />
|
<solid a:color="@color/blue_900" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/blue_850" />
|
<solid a:color="@color/blue_850" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/grey_900" />
|
<solid a:color="@color/grey_900" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/grey_850" />
|
<solid a:color="@color/grey_850" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/grey_800" />
|
<solid a:color="@color/grey_800" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/grey_850" />
|
<solid a:color="@color/grey_850" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/teal_400" />
|
<solid a:color="@color/teal_400" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/teal_500" />
|
<solid a:color="@color/teal_500" />
|
||||||
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_blue_button_shape" />
|
<item a:drawable="@drawable/metro_blue_button_shape" />
|
||||||
</ripple>
|
</ripple>
|
||||||
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_button_dark_shape" />
|
<item a:drawable="@drawable/metro_button_dark_shape" />
|
||||||
</ripple>
|
</ripple>
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_button_green_shape" />
|
<item a:drawable="@drawable/metro_button_green_shape" />
|
||||||
</ripple>
|
</ripple>
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_button_light_shape" />
|
<item a:drawable="@drawable/metro_button_light_shape" />
|
||||||
</ripple>
|
</ripple>
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_button_purple_shape" />
|
<item a:drawable="@drawable/metro_button_purple_shape" />
|
||||||
</ripple>
|
</ripple>
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_blue_button_shape" />
|
<item a:drawable="@drawable/metro_blue_button_shape" />
|
||||||
</ripple>
|
</ripple>
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_button_dark_shape" />
|
<item a:drawable="@drawable/metro_button_dark_shape" />
|
||||||
</ripple>
|
</ripple>
|
||||||
|
@ -23,6 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/ripple_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item a:drawable="@drawable/metro_button_light_shape" />
|
<item a:drawable="@drawable/metro_button_light_shape" />
|
||||||
</ripple>
|
</ripple>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/button_material_dark">
|
a:color="@color/cpp_ripple_material_dark">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/cpp_editor_bg" />
|
<solid a:color="@color/cpp_editor_bg" />
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
<ripple xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:color="@color/button_material_light">
|
a:color="@color/cpp_ripple_material_light">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<solid a:color="@color/cpp_bg_light" />
|
<solid a:color="@color/cpp_bg_light" />
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 938 B |
Binary file not shown.
Before Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.9 KiB |
@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
|
|
||||||
<selector xmlns:a="http://schemas.android.com/apk/res/android">
|
|
||||||
<item a:drawable="@drawable/cpp_wizard_button_shape_pressed" a:state_pressed="true" />
|
|
||||||
<item a:drawable="@drawable/cpp_wizard_button_shape_normal" />
|
|
||||||
</selector>
|
|
@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
|
|
||||||
<inset xmlns:a="http://schemas.android.com/apk/res/android"
|
|
||||||
a:insetBottom="@dimen/cpp_button_padding"
|
|
||||||
a:insetLeft="@dimen/cpp_button_padding"
|
|
||||||
a:insetRight="@dimen/cpp_button_padding"
|
|
||||||
a:insetTop="@dimen/cpp_button_padding">
|
|
||||||
|
|
||||||
<shape>
|
|
||||||
<solid a:color="@color/grey_800" />
|
|
||||||
<corners a:radius="@dimen/cpp_button_corner" />
|
|
||||||
</shape>
|
|
||||||
</inset>
|
|
@ -1,32 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
|
|
||||||
<inset xmlns:a="http://schemas.android.com/apk/res/android"
|
|
||||||
a:insetBottom="@dimen/cpp_button_padding"
|
|
||||||
a:insetLeft="@dimen/cpp_button_padding"
|
|
||||||
a:insetRight="@dimen/cpp_button_padding"
|
|
||||||
a:insetTop="@dimen/cpp_button_padding">
|
|
||||||
<shape>
|
|
||||||
<solid a:color="@color/grey_600" />
|
|
||||||
<corners a:radius="@dimen/cpp_button_corner" />
|
|
||||||
</shape>
|
|
||||||
</inset>
|
|
@ -28,5 +28,5 @@
|
|||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:text="@string/c_clear"
|
a:text="@string/c_clear"
|
||||||
app:directionTextUp="MC"
|
app:directionTextUp="@string/cpp_kb_memory_clear"
|
||||||
a:textStyle="bold"/>
|
a:textStyle="bold"/>
|
@ -1,29 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
|
||||||
a:id="@id/cpp_button_like"
|
|
||||||
style="?attr/cpp_button_style_control"
|
|
||||||
a:src="@drawable/ic_share_white_48dp" />
|
|
@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
<org.solovyev.android.views.dragbutton.DirectionDragButton style="?attr/cpp_button_style_control" />
|
|
@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
<org.solovyev.android.views.dragbutton.DirectionDragButton
|
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:c="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
a:id="@id/cpp_button_equals"
|
|
||||||
style="?attr/cpp_button_style_control"
|
|
||||||
a:text="="
|
|
||||||
c:directionTextDown="@string/cpp_plot_button_text"
|
|
||||||
c:directionTextUp="≡"
|
|
||||||
tools:ignore="HardcodedText" />
|
|
@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
~ Copyright 2013 serso aka se.solovyev
|
|
||||||
~
|
|
||||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
~ you may not use this file except in compliance with the License.
|
|
||||||
~ You may obtain a copy of the License at
|
|
||||||
~
|
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
~
|
|
||||||
~ Unless required by applicable law or agreed to in writing, software
|
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
~ See the License for the specific language governing permissions and
|
|
||||||
~ limitations under the License.
|
|
||||||
~
|
|
||||||
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
~ Contact details
|
|
||||||
~
|
|
||||||
~ Email: se.solovyev@gmail.com
|
|
||||||
~ Site: http://se.solovyev.org
|
|
||||||
-->
|
|
||||||
|
|
||||||
<org.solovyev.android.views.dragbutton.DirectionDragButton
|
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
a:id="@id/cpp_button_operators"
|
|
||||||
style="?attr/cpp_button_style_control"
|
|
||||||
a:text="@string/cpp_kb_operators"
|
|
||||||
tools:ignore="HardcodedText" />
|
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_0"
|
a:id="@id/cpp_button_0"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="0" />
|
a:text="0"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_0"
|
a:id="@id/cpp_button_0"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="0" />
|
a:text="0"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_0"
|
a:id="@id/cpp_button_0"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="0" />
|
a:text="0"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_1"
|
a:id="@id/cpp_button_1"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="1" />
|
a:text="1"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_1"
|
a:id="@id/cpp_button_1"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="1" />
|
a:text="1"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_1"
|
a:id="@id/cpp_button_1"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="1" />
|
a:text="1"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_2"
|
a:id="@id/cpp_button_2"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="2" />
|
a:text="2"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_2"
|
a:id="@id/cpp_button_2"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="2" />
|
a:text="2"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_2"
|
a:id="@id/cpp_button_2"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="2" />
|
a:text="2"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_3"
|
a:id="@id/cpp_button_3"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="3" />
|
a:text="3"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_3"
|
a:id="@id/cpp_button_3"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="3" />
|
a:text="3"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_3"
|
a:id="@id/cpp_button_3"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="3" />
|
a:text="3"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_4"
|
a:id="@id/cpp_button_4"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="4" />
|
a:text="4"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_4"
|
a:id="@id/cpp_button_4"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="4" />
|
a:text="4"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_4"
|
a:id="@id/cpp_button_4"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="4" />
|
a:text="4"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_5"
|
a:id="@id/cpp_button_5"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="5" />
|
a:text="5"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_5"
|
a:id="@id/cpp_button_5"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="5" />
|
a:text="5"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_5"
|
a:id="@id/cpp_button_5"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="5" />
|
a:text="5"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_6"
|
a:id="@id/cpp_button_6"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="6" />
|
a:text="6"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_6"
|
a:id="@id/cpp_button_6"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="6" />
|
a:text="6"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_6"
|
a:id="@id/cpp_button_6"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="6" />
|
a:text="6"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_7"
|
a:id="@id/cpp_button_7"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="7" />
|
a:text="7"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_7"
|
a:id="@id/cpp_button_7"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="7" />
|
a:text="7"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_7"
|
a:id="@id/cpp_button_7"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="7" />
|
a:text="7"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_8"
|
a:id="@id/cpp_button_8"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="8" />
|
a:text="8"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_8"
|
a:id="@id/cpp_button_8"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="8" />
|
a:text="8"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_8"
|
a:id="@id/cpp_button_8"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="8" />
|
a:text="8"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_9"
|
a:id="@id/cpp_button_9"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="9" />
|
a:text="9"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_9"
|
a:id="@id/cpp_button_9"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="9" />
|
a:text="9"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_9"
|
a:id="@id/cpp_button_9"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="9" />
|
a:text="9"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_app"
|
a:id="@id/cpp_button_app"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
|
||||||
a:contentDescription="App"
|
|
||||||
a:src="@drawable/ic_launch_white_48dp" />
|
a:src="@drawable/ic_launch_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_app"
|
a:id="@id/cpp_button_app"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
|
||||||
a:contentDescription="App"
|
|
||||||
a:src="@drawable/ic_launch_white_48dp" />
|
a:src="@drawable/ic_launch_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_app"
|
a:id="@id/cpp_button_app"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
|
||||||
a:contentDescription="App"
|
|
||||||
a:src="@drawable/ic_launch_white_48dp" />
|
a:src="@drawable/ic_launch_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_copy"
|
a:id="@id/cpp_button_copy"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
|
||||||
a:contentDescription="Copy"
|
|
||||||
a:src="@drawable/ic_content_copy_white_48dp" />
|
a:src="@drawable/ic_content_copy_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_copy"
|
a:id="@id/cpp_button_copy"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Material.Simple.Control.Image"
|
||||||
a:contentDescription="Copy"
|
|
||||||
a:src="@drawable/ic_content_copy_white_48dp" />
|
a:src="@drawable/ic_content_copy_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_copy"
|
a:id="@id/cpp_button_copy"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image"
|
||||||
a:contentDescription="Copy"
|
|
||||||
a:src="@drawable/ic_content_copy_white_48dp" />
|
a:src="@drawable/ic_content_copy_white_48dp" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_division"
|
a:id="@id/cpp_button_division"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Operation"
|
style="@style/CppKeyboardButton.Metro.Simple.Operation"
|
||||||
a:text="/" />
|
a:text="/"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_division"
|
a:id="@id/cpp_button_division"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Operation"
|
style="@style/CppKeyboardButton.Material.Simple.Operation"
|
||||||
a:text="/" />
|
a:text="/"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_division"
|
a:id="@id/cpp_button_division"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
|
||||||
a:text="/" />
|
a:text="/"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_period"
|
a:id="@id/cpp_button_period"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
style="@style/CppKeyboardButton.Metro.Simple.Digit"
|
||||||
a:text="." />
|
a:text="."
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_period"
|
a:id="@id/cpp_button_period"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Simple.Digit"
|
||||||
a:text="." />
|
a:text="."
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_period"
|
a:id="@id/cpp_button_period"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Digit"
|
||||||
a:text="." />
|
a:text="."
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_equals"
|
a:id="@id/cpp_button_equals"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.NoBg"
|
style="@style/CppKeyboardButton.Metro.Simple.NoBg"
|
||||||
a:text="=" />
|
a:text="="
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_equals"
|
a:id="@id/cpp_button_equals"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.NoBg"
|
style="@style/CppKeyboardButton.Material.Simple.NoBg"
|
||||||
a:text="=" />
|
a:text="="
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -23,6 +23,8 @@
|
|||||||
-->
|
-->
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_equals"
|
a:id="@id/cpp_button_equals"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.NoBg"
|
style="@style/CppKeyboardButton.Material.Light.Simple.NoBg"
|
||||||
a:text="=" />
|
a:text="="
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_erase"
|
a:id="@id/cpp_button_erase"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Operation.Image"
|
style="@style/CppKeyboardButton.Metro.Simple.Operation.Image"
|
||||||
a:contentDescription="Erase"
|
|
||||||
a:src="@drawable/ic_backspace_white_48dp" />
|
a:src="@drawable/ic_backspace_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_erase"
|
a:id="@id/cpp_button_erase"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Control.Image.Highlighted"
|
style="@style/CppKeyboardButton.Material.Simple.Control.Image.Highlighted"
|
||||||
a:contentDescription="Erase"
|
|
||||||
a:src="@drawable/ic_backspace_white_48dp" />
|
a:src="@drawable/ic_backspace_white_48dp" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_erase"
|
a:id="@id/cpp_button_erase"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image.Highlighted"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Control.Image.Highlighted"
|
||||||
a:contentDescription="Erase"
|
|
||||||
a:src="@drawable/ic_backspace_white_48dp" />
|
a:src="@drawable/ic_backspace_white_48dp" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_multiplication"
|
a:id="@id/cpp_button_multiplication"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Operation"
|
style="@style/CppKeyboardButton.Metro.Simple.Operation"
|
||||||
a:text="×" />
|
a:text="×"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_multiplication"
|
a:id="@id/cpp_button_multiplication"
|
||||||
style="@style/CppKeyboardButton.Material.Simple.Operation"
|
style="@style/CppKeyboardButton.Material.Simple.Operation"
|
||||||
a:text="×" />
|
a:text="×"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
<Button
|
<Button
|
||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
a:id="@id/cpp_button_multiplication"
|
a:id="@id/cpp_button_multiplication"
|
||||||
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
|
style="@style/CppKeyboardButton.Material.Light.Simple.Operation"
|
||||||
a:text="×" />
|
a:text="×"
|
||||||
|
tools:ignore="HardcodedText" />
|
@ -26,5 +26,4 @@
|
|||||||
xmlns:a="http://schemas.android.com/apk/res/android"
|
xmlns:a="http://schemas.android.com/apk/res/android"
|
||||||
a:id="@id/cpp_button_paste"
|
a:id="@id/cpp_button_paste"
|
||||||
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
|
style="@style/CppKeyboardButton.Metro.Simple.Control.Image"
|
||||||
a:contentDescription="Paste"
|
|
||||||
a:src="@drawable/ic_content_paste_white_48dp" />
|
a:src="@drawable/ic_content_paste_white_48dp" />
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user