Browse Source

增加广告功能,需要在代码中设置广告id。

liuyuqi-dellpc 5 years ago
parent
commit
6963e5350d

+ 8 - 1
app/build.gradle

@@ -9,6 +9,11 @@ android {
         versionCode 11
         versionCode 11
         versionName "1.0.1"
         versionName "1.0.1"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+
+        sourceSets.main{
+            jni.srcDirs = []
+            jniLibs.srcDirs = ['libs']
+        }
     }
     }
     buildTypes {
     buildTypes {
         release {
         release {
@@ -22,8 +27,10 @@ dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+    implementation files('libs/Baidu_MobAds_SDK.jar')
+    implementation files('libs/armeabi/xiaomi_sdk.jar')
 
 
     testImplementation 'junit:junit:4.12'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test:runner:1.2.0'
     androidTestImplementation 'androidx.test:runner:1.2.0'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-}
+}

BIN
app/libs/Baidu_MobAds_SDK.jar


BIN
app/libs/armeabi/libsdk_patcher_jni.so


BIN
app/libs/armeabi/xiaomi_sdk.jar


+ 4 - 1
app/src/main/AndroidManifest.xml

@@ -2,13 +2,15 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="me.yoqi.calculator">
     package="me.yoqi.calculator">
 
 
+    <uses-permission android:name="android.permission.INTERNET" />
+
     <application
     <application
         android:allowBackup="true"
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:label="@string/app_name"
         android:supportsRtl="true"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
         android:theme="@style/AppTheme">
-        <activity android:name=".ProgrammerCalcActivity">
+        <activity android:name=".ui.SplashActivity">
             <intent-filter>
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.intent.action.MAIN" />
 
 
@@ -17,6 +19,7 @@
         </activity>
         </activity>
         <activity android:name=".MainActivity"/>
         <activity android:name=".MainActivity"/>
         <activity android:name=".ui.AboutActivity"/>
         <activity android:name=".ui.AboutActivity"/>
+        <activity android:name=".ui.ProgrammerCalcActivity"/>
     </application>
     </application>
 
 
 </manifest>
 </manifest>

+ 0 - 17
app/src/main/java/me/yoqi/calculator/SplashActivity.java

@@ -1,17 +0,0 @@
-package me.yoqi.calculator;
-
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-
-/**
- *闪屏页面
- */
-public class SplashActivity extends AppCompatActivity {
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-    }
-}

+ 93 - 2
app/src/main/java/me/yoqi/calculator/ui/AboutActivity.java

@@ -1,16 +1,107 @@
 package me.yoqi.calculator.ui;
 package me.yoqi.calculator.ui;
 
 
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
 
 
-import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.app.AppCompatActivity;
 
 
+import com.xiaomi.market.sdk.UpdateResponse;
+import com.xiaomi.market.sdk.UpdateStatus;
+import com.xiaomi.market.sdk.XiaomiUpdateAgent;
+import com.xiaomi.market.sdk.XiaomiUpdateListener;
+
 import me.yoqi.calculator.R;
 import me.yoqi.calculator.R;
 
 
 public class AboutActivity extends AppCompatActivity {
 public class AboutActivity extends AppCompatActivity {
+
     @Override
     @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
+    protected void onCreate(Bundle savedInstanceState) {
+        Button checkNewButton = (Button) findViewById(R.id.check_view_button);
+
         super.onCreate(savedInstanceState);
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_about);
         setContentView(R.layout.activity_about);
+        TextView versionName = (TextView) findViewById(R.id.versionNameTextView);
+        TextView appName = (TextView) findViewById(R.id.appNameTextView);
+        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.about_developer_title_bacground);
+        linearLayout.setBackgroundColor(getResources().getColor(R.color.blue_bright));
+        try {
+            versionName.setText("V " + getVersionName());
+        } catch (Exception e) {
+        }
+        appName.setText(getResources().getString(R.string.app_name));
+
+    }
+
+    private String getVersionName() throws Exception {
+        PackageManager packageManager = getPackageManager();
+        PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(), 0);
+        String version = packInfo.versionName;
+        return version;
+    }
+
+    public void onClickCheckNewButton(View view) {
+
+        //Toast toast = new Toast(this);
+        Toast.makeText(this, getResources().getString(R.string.checking_new), Toast.LENGTH_SHORT).show();
+        XiaomiUpdateAgent.setUpdateAutoPopup(false);
+        XiaomiUpdateAgent.setUpdateListener(new XiaomiUpdateListener() {
+
+            @Override
+            public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
+                switch (updateStatus) {
+                    case UpdateStatus.STATUS_UPDATE:
+                        // 有更新, UpdateResponse为本次更新的详细信息
+                        // 其中包含更新信息,下载地址,MD5校验信息等,可自行处理下载安装
+                        // 如果希望 SDK继续接管下载安装事宜,可调用
+                        AlertDialog alert = new AlertDialog.Builder(AboutActivity.this).create();
+                        alert.setIcon(R.drawable.ic_launcher);
+                        alert.setTitle(getResources().getString(R.string.app_name));
+                        alert.setMessage(getResources().getString(R.string.checked_new_alert_message));
+                        alert.setButton(DialogInterface.BUTTON_POSITIVE, getResources().getString(R.string.alert_update_yes_button), new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                XiaomiUpdateAgent.arrange();
+                            }
+                        });
+                        alert.setButton(DialogInterface.BUTTON_NEGATIVE, getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                            }
+                        });
+                        alert.show();
+                        break;
+                    case UpdateStatus.STATUS_NO_UPDATE:
+                        // 无更新, UpdateResponse为null
+                        Toast.makeText(AboutActivity.this, getResources().getString(R.string.checked_updated), Toast.LENGTH_LONG).show();
+                        break;
+                    case UpdateStatus.STATUS_NO_WIFI:
+                        // 设置了只在WiFi下更新,且WiFi不可用时, UpdateResponse为null
+                        break;
+                    case UpdateStatus.STATUS_NO_NET:
+                        // 没有网络, UpdateResponse为null
+                        Toast.makeText(AboutActivity.this, getResources().getString(R.string.checked_no_network), Toast.LENGTH_LONG).show();
+                        break;
+                    case UpdateStatus.STATUS_FAILED:
+                        // 检查更新与服务器通讯失败,可稍后再试, UpdateResponse为null
+                        Toast.makeText(AboutActivity.this, getResources().getString(R.string.checked_no_server), Toast.LENGTH_LONG).show();
+                        break;
+                    case UpdateStatus.STATUS_LOCAL_APP_FAILED:
+                        // 检查更新获取本地安装应用信息失败, UpdateResponse为null
+                        Toast.makeText(AboutActivity.this, getResources().getString(R.string.checked_error), Toast.LENGTH_LONG).show();
+                        break;
+                    default:
+                        break;
+                }
+            }
+        });
+        XiaomiUpdateAgent.update(this);
     }
     }
 }
 }

+ 2 - 4
app/src/main/java/me/yoqi/calculator/ProgrammerCalcActivity.java → app/src/main/java/me/yoqi/calculator/ui/ProgrammerCalcActivity.java

@@ -1,6 +1,5 @@
-package me.yoqi.calculator;
+package me.yoqi.calculator.ui;
 
 
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View;
@@ -10,10 +9,9 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
-import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.app.AppCompatActivity;
 
 
-import me.yoqi.calculator.ui.AboutActivity;
+import me.yoqi.calculator.R;
 
 
 /**
 /**
  * 程序员计算器
  * 程序员计算器

+ 87 - 0
app/src/main/java/me/yoqi/calculator/ui/SplashActivity.java

@@ -0,0 +1,87 @@
+package me.yoqi.calculator.ui;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.RelativeLayout;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.baidu.mobads.SplashAd;
+import com.baidu.mobads.SplashAdListener;
+
+import me.yoqi.calculator.MainActivity;
+import me.yoqi.calculator.R;
+
+/**
+ * 闪屏页面
+ */
+public class SplashActivity extends AppCompatActivity {
+    String adPlaceId = "7777777";//重要:请填上您的广告位ID
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_splash);
+        RelativeLayout adsParent = (RelativeLayout) this
+                .findViewById(R.id.adsRl);
+        SplashAdListener listener = new SplashAdListener() {
+            @Override
+            public void onAdDismissed() {
+                Log.i("RSplashActivity", "onAdDismissed");
+                jumpWhenCanClick();// 跳转至您的应用主界面
+            }
+
+            @Override
+            public void onAdFailed(String arg0) {
+                Log.i("RSplashActivity", "onAdFailed");
+                jump();
+            }
+
+            @Override
+            public void onAdPresent() {
+                Log.i("RSplashActivity", "onAdPresent");
+            }
+
+            @Override
+            public void onAdClick() {
+                Log.i("RSplashActivity", "onAdClick");
+                //设置开屏可接受点击时,该回调可用
+            }
+        };
+        new SplashAd(this, adsParent, listener, adPlaceId, true, SplashAd.SplashType.REAL_TIME);
+    }
+
+    /**
+     * 当设置开屏可点击时,需要等待跳转页面关闭后,再切换至您的主窗口。故此时需要增加waitingOnRestart判断。
+     * 另外,点击开屏还需要在onRestart中调用jumpWhenCanClick接口。
+     */
+    public boolean waitingOnRestart = false;
+
+    private void jumpWhenCanClick() {
+        Log.d("test", "this.hasWindowFocus():" + this.hasWindowFocus());
+        if (this.hasWindowFocus() || waitingOnRestart) {
+            this.startActivity(new Intent(SplashActivity.this, ProgrammerCalcActivity.class));
+            this.finish();
+        } else {
+            waitingOnRestart = true;
+        }
+
+    }
+
+    /**
+     * 不可点击的开屏,使用该jump方法,而不是用jumpWhenCanClick
+     */
+    private void jump() {
+        this.startActivity(new Intent(SplashActivity.this, ProgrammerCalcActivity.class));
+        this.finish();
+    }
+
+    @Override
+    protected void onRestart() {
+        super.onRestart();
+        if (waitingOnRestart) {
+            jumpWhenCanClick();
+        }
+    }
+}

+ 0 - 9
app/src/main/res/layout/activity_about.xml

@@ -92,15 +92,6 @@
                     android:textColor="@color/black"
                     android:textColor="@color/black"
                     android:textSize="14dp" />
                     android:textSize="14dp" />
 
 
-                <TextView
-                    android:layout_width="fill_parent"
-                    android:layout_height="50dp"
-                    android:textAppearance="?android:attr/textAppearanceLarge"
-                    android:gravity="center_vertical"
-                    android:text="@string/sina_weibo"
-                    android:textColor="@color/black"
-                    android:textSize="14dp" />
-
                 <TextView
                 <TextView
                     android:layout_width="fill_parent"
                     android:layout_width="fill_parent"
                     android:layout_height="50dp"
                     android:layout_height="50dp"

+ 1 - 1
app/src/main/res/layout/activity_programmer_calc.xml

@@ -5,7 +5,7 @@
     android:orientation="vertical"
     android:orientation="vertical"
     android:id="@+id/main_body1"
     android:id="@+id/main_body1"
     android:background="#ffffff"
     android:background="#ffffff"
-    tools:context=".ProgrammerCalcActivity">
+    tools:context=".ui.ProgrammerCalcActivity">
     <LinearLayout
     <LinearLayout
         android:layout_width="fill_parent"
         android:layout_width="fill_parent"
         android:layout_height="0dp"
         android:layout_height="0dp"

+ 43 - 0
app/src/main/res/layout/activity_splash.xml

@@ -0,0 +1,43 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.SplashActivity">
+
+    <RelativeLayout android:id="@+id/bottomRl"
+        android:layout_height="100dp"
+        android:layout_width="fill_parent"
+        android:layout_alignParentBottom="true"
+        android:background="@color/blue_bright">
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:paddingLeft="@dimen/abc_action_bar_default_height_material"
+            android:paddingRight="@dimen/abc_action_bar_default_height_material">
+            <ImageView android:id="@+id/bottomIcon"
+                android:layout_height="70dp"
+                android:layout_width="70dp"
+                android:layout_gravity="center"
+                android:background="@drawable/ic_launcher"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="match_parent"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textColor="@color/white"
+                android:id="@+id/appNameTextView"
+                android:text="@string/app_name"
+                android:layout_gravity="center"
+                android:gravity="center_vertical|center_horizontal"
+                android:layout_toRightOf="@id/bottomIcon"/>
+        </LinearLayout>
+
+    </RelativeLayout>
+    <RelativeLayout android:id="@+id/adsRl"
+        android:layout_height="fill_parent"
+        android:layout_width="fill_parent"
+        android:layout_above="@id/bottomRl"
+        android:background="@color/blue_bright">
+
+    </RelativeLayout>
+
+</RelativeLayout>

+ 7 - 8
app/src/main/res/values-zh/strings.xml

@@ -5,10 +5,10 @@
     <string name="hello_world">Hello world!</string>
     <string name="hello_world">Hello world!</string>
     <string name="action_settings">Settings</string>
     <string name="action_settings">Settings</string>
     <string name="init_text">0</string>
     <string name="init_text">0</string>
-    <string name="hex_view_button">十六</string>
-    <string name="dec_view_button"></string>
-    <string name="oct_view_button"></string>
-    <string name="bin_view_button"></string>
+    <string name="hex_view_button">HEX</string>
+    <string name="dec_view_button">DEC</string>
+    <string name="oct_view_button">OCT</string>
+    <string name="bin_view_button">BIN</string>
     <string name="blank">  </string>
     <string name="blank">  </string>
     <string name="bit_length_BYTE">8位</string>
     <string name="bit_length_BYTE">8位</string>
     <string name="bit_length_WORD">16位</string>
     <string name="bit_length_WORD">16位</string>
@@ -73,11 +73,10 @@
     <string name="error_of_mod">对零取模结果未定义</string>
     <string name="error_of_mod">对零取模结果未定义</string>
     <string name="title_activity_about_app">AboutAppActivity</string>
     <string name="title_activity_about_app">AboutAppActivity</string>
     <string name="about_developer_title">关于开发者:</string>
     <string name="about_developer_title">关于开发者:</string>
-    <string name="about_developer">开发者:幽灵王子SpectrePrince</string>
-    <string name="Email">Email:youlingwangzi@outlook.com</string>
-    <string name="sina_weibo">新浪微博:@幽灵王子SpectrePrince</string>
+    <string name="about_developer">开发者:liuyuqi</string>
+    <string name="Email">Email:liuyuqi.gov@msn.cn</string>
     <string name="tips_title">你知道吗?</string>
     <string name="tips_title">你知道吗?</string>
-    <string name="tell_me">如果您在使用过程中遇到任何问题,欢迎通过邮箱微博联系我。感谢您的帮助。</string>
+    <string name="tell_me">如果您在使用过程中遇到任何问题,欢迎通过邮箱联系我。感谢您的帮助。</string>
     <string name="check_new_button">检查更新</string>
     <string name="check_new_button">检查更新</string>
     <string name="checking_new">正在检查更新</string>
     <string name="checking_new">正在检查更新</string>
     <string name="checked_updated">您的应用已是最新版</string>
     <string name="checked_updated">您的应用已是最新版</string>

+ 27 - 28
app/src/main/res/values/strings.xml

@@ -2,7 +2,7 @@
     <string name="app_name">Calculator</string>
     <string name="app_name">Calculator</string>
     <string name="and_button">and</string>
     <string name="and_button">and</string>
     <string name="add_button">+</string>
     <string name="add_button">+</string>
-    <string name="bin_view_button">2</string>
+    <string name="bin_view_button">BIN</string>
     <string name="bit_flag_8">0</string>
     <string name="bit_flag_8">0</string>
     <string name="bit_flag_60">0</string>
     <string name="bit_flag_60">0</string>
     <string name="bit_flag_56">0</string>
     <string name="bit_flag_56">0</string>
@@ -21,17 +21,16 @@
     <string name="bit_flag_0">0</string>
     <string name="bit_flag_0">0</string>
     <string name="action_settings">Settings</string>
     <string name="action_settings">Settings</string>
     <string name="about_developer_title">about developer:</string>
     <string name="about_developer_title">about developer:</string>
-    <string name="about_developer">developer:liuyuqi.gov@msn.cn</string>
+    <string name="about_developer">developer:liuyuqi</string>
     <string name="num_f_button">F</string>
     <string name="num_f_button">F</string>
     <string name="sub_button">-</string>
     <string name="sub_button">-</string>
-    <string name="sina_weibo">sina:</string>
     <string name="set_1_button">set 1</string>
     <string name="set_1_button">set 1</string>
     <string name="set_0_button">set 0</string>
     <string name="set_0_button">set 0</string>
     <string name="rsh_button">Rsh</string>
     <string name="rsh_button">Rsh</string>
     <string name="or_button">or</string>
     <string name="or_button">or</string>
     <string name="opp_button">±</string>
     <string name="opp_button">±</string>
-    <string name="oct_view_button">8</string>
-    <string name="num_keyboard_button">number pad</string>
+    <string name="oct_view_button">OCT</string>
+    <string name="num_keyboard_button">number keyboard</string>
     <string name="num_e_button">E</string>
     <string name="num_e_button">E</string>
     <string name="num_d_button">D</string>
     <string name="num_d_button">D</string>
     <string name="num_c_button">C</string>
     <string name="num_c_button">C</string>
@@ -47,44 +46,44 @@
     <string name="num_2_button">2</string>
     <string name="num_2_button">2</string>
     <string name="num_1_button">1</string>
     <string name="num_1_button">1</string>
     <string name="num_0_button">0</string>
     <string name="num_0_button">0</string>
-    <string name="not_button">exo</string>
+    <string name="not_button">not</string>
     <string name="mul_button">×</string>
     <string name="mul_button">×</string>
     <string name="mod_button">mod</string>
     <string name="mod_button">mod</string>
     <string name="lsh_button">Lsh</string>
     <string name="lsh_button">Lsh</string>
     <string name="init_text">0</string>
     <string name="init_text">0</string>
-    <string name="hex_view_button">16</string>
+    <string name="hex_view_button">HEX</string>
     <string name="help_button">about</string>
     <string name="help_button">about</string>
     <string name="hello_world">Hello world!</string>
     <string name="hello_world">Hello world!</string>
-    <string name="error_of_mod">对零取模结果未定义</string>
-    <string name="error_of_divide">除数不能为零</string>
+    <string name="error_of_mod">"The result of zero modulus is not defined  "</string>
+    <string name="error_of_divide">"The divisor cannot be zero  "</string>
     <string name="equal_button">=</string>
     <string name="equal_button">=</string>
-    <string name="Email">Email:youlingwangzi@outlook.com</string>
+    <string name="Email">Email:liuyuqi.gov@msn.cn</string>
     <string name="blank">  </string>
     <string name="blank">  </string>
-    <string name="bit_length_BYTE">8</string>
-    <string name="bit_length_WORD">16</string>
-    <string name="bit_length_DWORD">32</string>
-    <string name="bit_length_QWORD">64</string>
-    <string name="bit_keyboard_button">位键盘</string>
-    <string name="tips_title">你知道吗?</string>
-    <string name="tell_me">如果您在使用过程中遇到任何问题,欢迎通过邮箱微博联系我。感谢您的帮助。</string>
-    <string name="check_new_button">检查更新</string>
-    <string name="checking_new">正在检查更新</string>
-    <string name="checked_updated">您的应用已是最新版</string>
-    <string name="checked_no_network">没有网络,请检查您的网络设置</string>
-    <string name="checked_no_server">与服务器通讯失败,请稍后再试</string>
-    <string name="checked_error">检查更新出现问题,请稍后再试</string>
-    <string name="checked_new_alert_message">程序员计算器有新版本,是否更新?</string>
-    <string name="cancel">取消</string>
+    <string name="bit_length_BYTE">8 bit</string>
+    <string name="bit_length_WORD">16 bit</string>
+    <string name="bit_length_DWORD">32 bit</string>
+    <string name="bit_length_QWORD">64 bit</string>
+    <string name="bit_keyboard_button">bit keyboard</string>
+    <string name="tips_title">Do you know?</string>
+    <string name="tell_me">"If you encounter any problems in the process of use, please contact me via email. Thank you for your help  "</string>
+    <string name="check_new_button">check update</string>
+    <string name="checking_new">"Checking for updates  "</string>
+    <string name="checked_updated">"Your application is the latest version  "</string>
+    <string name="checked_no_network">"There is no network. Please check your network Settings  "</string>
+    <string name="checked_no_server">"Failed to communicate with server. Please try again later  "</string>
+    <string name="checked_error">"Check for update problems, please try again later  "</string>
+    <string name="checked_new_alert_message">calculator has a new version, whether updated</string>
+    <string name="cancel">cacel</string>
     <string name="title_activity_start">StartActivity</string>
     <string name="title_activity_start">StartActivity</string>
     <string name="title_activity_ad">AdActivity</string>
     <string name="title_activity_ad">AdActivity</string>
     <string name="title_activity_about_app">AboutAppActivity</string>
     <string name="title_activity_about_app">AboutAppActivity</string>
-    <string name="xor_button">异或</string>
+    <string name="xor_button">xor</string>
     <string name="clear_button">C</string>
     <string name="clear_button">C</string>
     <string name="clear_one_button">←</string>
     <string name="clear_one_button">←</string>
-    <string name="dec_view_button">10</string>
+    <string name="dec_view_button">DEC</string>
     <string name="divide_button">÷</string>
     <string name="divide_button">÷</string>
     <string name="ce_button">CE</string>
     <string name="ce_button">CE</string>
     <string name="bracket_left_button">(</string>
     <string name="bracket_left_button">(</string>
     <string name="bracket_right_button">)</string>
     <string name="bracket_right_button">)</string>
-    <string name="alert_update_yes_button">更新</string>
+    <string name="alert_update_yes_button">update</string>
 </resources>
 </resources>