Skip to content

Commit cee35ae

Browse files
committed
Add translation
Add AboutView Change package Name Optimize Codes
1 parent ef4e442 commit cee35ae

27 files changed

+572
-66
lines changed

app/build.gradle

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ apply plugin: 'com.android.application'
33
android {
44
compileSdkVersion 26
55
defaultConfig {
6-
applicationId "com.mogician.cardreader"
6+
applicationId "com.wolfaonliu.cardreader"
77
minSdkVersion 23
88
targetSdkVersion 26
99
versionCode 1
10-
versionName "1.2.5"
10+
versionName "1.3.0"
1111
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1212
}
1313
buildTypes {
@@ -18,9 +18,10 @@ android {
1818
}
1919

2020
android.applicationVariants.all {
21-
variant -> variant.outputs.all {
22-
outputFileName = "NCR_${variant.name}_v${variant.versionName}.apk"
23-
}
21+
variant ->
22+
variant.outputs.all {
23+
outputFileName = "NCR_${variant.name}_v${variant.versionName}.apk"
24+
}
2425
}
2526
}
2627

@@ -29,6 +30,7 @@ dependencies {
2930
implementation 'com.android.support:appcompat-v7:26.1.0'
3031
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
3132
implementation 'com.android.support:design:26.1.0'
33+
implementation 'com.android.support:support-v4:26.1.0'
3234
testImplementation 'junit:junit:4.12'
3335
androidTestImplementation 'com.android.support.test:runner:1.0.1'
3436
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

app/src/androidTest/java/com/mogician/cardreader/ExampleInstrumentedTest.java renamed to app/src/androidTest/java/com/wolfaonliu/cardreader/ExampleInstrumentedTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mogician.cardreader;
1+
package com.wolfaonliu.cardreader;
22

33
import android.content.Context;
44
import android.support.test.InstrumentationRegistry;
@@ -7,7 +7,7 @@
77
import org.junit.Test;
88
import org.junit.runner.RunWith;
99

10-
import static org.junit.Assert.*;
10+
import static org.junit.Assert.assertEquals;
1111

1212
/**
1313
* Instrumented test, which will execute on an Android device.

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.mogician.cardreader">
3+
package="com.wolfaonliu.cardreader">
44

55
<uses-permission android:name="android.permission.NFC" />
66

@@ -12,7 +12,7 @@
1212
android:roundIcon="@mipmap/ic_launcher_round"
1313
android:supportsRtl="true"
1414
android:theme="@style/AppTheme.NoActionBar">
15-
<activity android:name=".MainActivity">
15+
<activity android:name="com.wolfaonliu.cardreader.MainActivity">
1616
<intent-filter>
1717
<action android:name="android.intent.action.MAIN" />
1818

@@ -55,6 +55,7 @@
5555
android:name="android.nfc.action.TECH_DISCOVERED"
5656
android:resource="@xml/nfc_tech_filter" />
5757
</activity>
58+
<activity android:name="com.wolfaonliu.cardreader.AboutActivity" />
5859
</application>
5960

6061
</manifest>
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
package com.wolfaonliu.cardreader;
2+
3+
import android.app.AlertDialog;
4+
import android.content.DialogInterface;
5+
import android.content.Intent;
6+
import android.net.Uri;
7+
import android.os.Bundle;
8+
import android.support.v7.app.AppCompatActivity;
9+
import android.support.v7.widget.RecyclerView;
10+
import android.support.v7.widget.Toolbar;
11+
import android.view.View;
12+
import android.widget.AdapterView;
13+
import android.widget.ListView;
14+
15+
import java.util.ArrayList;
16+
import java.util.Arrays;
17+
18+
public class AboutActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
19+
20+
Toolbar toolbar;
21+
22+
23+
private ListView mView;
24+
25+
private AboutAdapter mAdapter;
26+
27+
private RecyclerView.LayoutManager mLayoutManager;
28+
29+
@Override
30+
protected void onCreate(Bundle savedInstanceState) {
31+
super.onCreate(savedInstanceState);
32+
setContentView(R.layout.activity_about);
33+
34+
toolbar = findViewById(R.id.about_toolbar);
35+
setSupportActionBar(toolbar);
36+
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
37+
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
38+
@Override
39+
public void onClick(View v) {
40+
finish();
41+
}
42+
});
43+
initData();
44+
initView();
45+
}
46+
47+
48+
private void initData() {
49+
mAdapter = new AboutAdapter(getSet(), this);
50+
}
51+
52+
private ArrayList<String[]> getSet() {
53+
ArrayList<String[]> settings = new ArrayList<>();
54+
String[][] s = new String[4][2];
55+
s[0][0] = getString(R.string.version);
56+
s[0][1] = Util.getVersion(this.getApplicationContext());
57+
s[1][0] = getString(R.string.developer);
58+
s[1][1] = "wolfaonliu";
59+
s[2][0] = getString(R.string.contact);
60+
s[2][1] = "wolfaonliu@gmail.com";
61+
s[3][0] = getString(R.string.github);
62+
s[3][1] = "https://github.com/liuyanyi/NewcapecCardReader";
63+
settings.addAll(Arrays.asList(s));
64+
return settings;
65+
}
66+
67+
private void initView() {
68+
mView = findViewById(R.id.set_list);
69+
// 设置adapter
70+
mView.setAdapter(mAdapter);
71+
mView.setOnItemClickListener(this);
72+
}
73+
74+
@Override
75+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
76+
Uri uri;
77+
Intent intent;
78+
switch (position) {
79+
case 2:
80+
// uri = Uri.parse("wolfaonliu@gmail.com");
81+
// intent = new Intent(Intent.ACTION_SENDTO, uri);
82+
//// intent.putExtra(Intent.EXTRA_SUBJECT, "Newcapec Card Reader Report");
83+
// startActivity(intent);
84+
showEmailDialog();
85+
break;
86+
case 3:
87+
uri = Uri.parse("https://github.com/liuyanyi/NewcapecCardReader");
88+
intent = new Intent(Intent.ACTION_VIEW, uri);
89+
startActivity(intent);
90+
break;
91+
default:
92+
break;
93+
}
94+
// Toast.makeText(this, "你点击了第" + position + "项", Toast.LENGTH_SHORT).show();
95+
}
96+
97+
98+
private void showEmailDialog() {
99+
AlertDialog.Builder builder = new AlertDialog.Builder(this);
100+
builder.setTitle(R.string.Report)
101+
.setMessage(R.string.report_atten);
102+
builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
103+
@Override
104+
public void onClick(DialogInterface dialog, int which) {
105+
Intent email = new Intent(Intent.ACTION_SEND);
106+
email.setType("message/rfc822");
107+
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"wolfaonliu@gmail.com"});
108+
email.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name) + getString(R.string.report));
109+
startActivity(Intent.createChooser(email, getString(R.string.email_clint)));
110+
}
111+
});
112+
builder.setNegativeButton(R.string.no, null);
113+
114+
builder.show();
115+
}
116+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.wolfaonliu.cardreader;
2+
3+
import android.app.Activity;
4+
import android.view.LayoutInflater;
5+
import android.view.View;
6+
import android.view.ViewGroup;
7+
import android.widget.BaseAdapter;
8+
import android.widget.TextView;
9+
10+
import java.util.ArrayList;
11+
12+
/**
13+
* Created by Mogician on 2018/3/14.
14+
*/
15+
16+
public class AboutAdapter extends BaseAdapter {
17+
18+
private ArrayList<String[]> mData;
19+
private Activity activity;
20+
21+
private TextView setting;
22+
private TextView settingsub;
23+
24+
25+
public AboutAdapter(ArrayList<String[]> data, Activity activity) {
26+
this.mData = data;
27+
this.activity = activity;
28+
}
29+
30+
@Override
31+
public int getCount() {
32+
return mData.size();
33+
}
34+
35+
@Override
36+
public Object getItem(int position) {
37+
return null;
38+
}
39+
40+
@Override
41+
public long getItemId(int position) {
42+
return position;
43+
}
44+
45+
@Override
46+
public View getView(int position, View convertView, ViewGroup parent) {
47+
convertView = LayoutInflater.from(activity).inflate(R.layout.about_item, parent, false);
48+
49+
setting = convertView.findViewById(R.id.setting);
50+
settingsub = convertView.findViewById(R.id.settingsub);
51+
52+
//
53+
setting.setText(mData.get(position)[0]);
54+
settingsub.setText(mData.get(position)[1]);
55+
return convertView;
56+
57+
}
58+
59+
60+
}

app/src/main/java/com/mogician/cardreader/CardInfo.java renamed to app/src/main/java/com/wolfaonliu/cardreader/CardInfo.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mogician.cardreader;
1+
package com.wolfaonliu.cardreader;
22

33
import android.app.Activity;
44
import android.graphics.Color;
@@ -95,7 +95,7 @@ public void setPersonId(String personId) {
9595
public void setCardBalance(String cardBalance) {
9696
if (cardBalance != null)
9797
isNewcapecCard = true;
98-
this.cardBalance = cardBalance + "元";
98+
this.cardBalance = cardBalance + mainActivity.getString(R.string.yuan);
9999
}
100100

101101
public void setStudentDept(String studentDept) {
@@ -114,13 +114,13 @@ public void onFinish(boolean isFull) {
114114
pgBar.setVisibility(View.GONE);
115115
if (!isFull) {
116116
//未能复现……
117-
atten.setText("警告,读取内容不全,请重新放置卡片");
117+
atten.setText(mainActivity.getString(R.string.reading_alert));
118118
pgI.setColorFilter(Color.parseColor("#259b24"));
119119
} else if (isNewcapecCard) {
120-
atten.setText("成功");
120+
atten.setText(mainActivity.getString(R.string.success));
121121
pgI.setColorFilter(Color.parseColor("#259b24"));
122122
} else {
123-
atten.setText("失败,非校园卡");
123+
atten.setText(mainActivity.getString(R.string.failed));
124124
pgI.setColorFilter(Color.parseColor("#e51c23"));
125125
}
126126
}
@@ -146,7 +146,7 @@ public void showInLog() {
146146

147147
public boolean show() {
148148
if (isNewcapecCard) {
149-
isCard.setText("校园卡");
149+
isCard.setText(mainActivity.getString(R.string.isStuCard));
150150

151151
name.setText(studentName);
152152

@@ -164,7 +164,7 @@ public boolean show() {
164164

165165
dealCard.setVisibility(View.VISIBLE);
166166
// 设置adapter
167-
mAdapter = new DealAdapter(getTradeList());
167+
mAdapter = new DealAdapter(getTradeList(), mainActivity);
168168
mRecyclerView.setAdapter(mAdapter);
169169
mRecyclerView.addItemDecoration(new ItemDivider(mainActivity, LinearLayoutManager.VERTICAL));
170170
}
@@ -173,7 +173,7 @@ public boolean show() {
173173
return false;
174174

175175
} else {
176-
isCard.setText("非校园卡");
176+
isCard.setText(mainActivity.getString(R.string.unsupport));
177177

178178
hardware.setText(hardwareId);
179179

app/src/main/java/com/mogician/cardreader/CardReader.java renamed to app/src/main/java/com/wolfaonliu/cardreader/CardReader.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.mogician.cardreader;
1+
package com.wolfaonliu.cardreader;
22

33
import android.app.Activity;
44
import android.content.Intent;
@@ -49,7 +49,7 @@ public static CardInfo readCard(Activity activity, Intent intent) {
4949
if (transceive != null && g.c(transceive)) {
5050
transceive = isoDep.transceive(g.a(fInts.d));
5151
if (transceive == null || !g.c(transceive)) {
52-
Util.aToast("读卡失败!", activity);
52+
Util.aToast(activity.getString(R.string.read_failed), activity);
5353
} else {
5454
byte[] a;
5555

@@ -96,7 +96,7 @@ public static CardInfo readCard(Activity activity, Intent intent) {
9696
a = g.a(transceive);
9797
g.a(a, 0, transceive, 0, transceive.length - 2);
9898
action = g.a(a, 0, a.length, "GB18030").trim();
99-
Log.d("***", action);
99+
// Log.d("***", action);
100100
if (Util.d(action) || Util.a(action) || action.contains("000000")) {
101101
// bVar.d(action);
102102
// Log.d("学院******", action);

app/src/main/java/com/mogician/cardreader/DealAdapter.java renamed to app/src/main/java/com/wolfaonliu/cardreader/DealAdapter.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.mogician.cardreader;
1+
package com.wolfaonliu.cardreader;
22

3+
import android.app.Activity;
34
import android.support.v7.widget.RecyclerView;
45
import android.view.LayoutInflater;
56
import android.view.View;
@@ -15,9 +16,11 @@
1516
public class DealAdapter extends RecyclerView.Adapter<DealAdapter.ViewHolder> {
1617

1718
private ArrayList<TradingRecordInfo> mData;
19+
private Activity activity;
1820

19-
public DealAdapter(ArrayList<TradingRecordInfo> data) {
21+
public DealAdapter(ArrayList<TradingRecordInfo> data, Activity activity) {
2022
this.mData = data;
23+
this.activity = activity;
2124
}
2225

2326
public void updateData(ArrayList<TradingRecordInfo> data) {
@@ -37,10 +40,20 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
3740
public void onBindViewHolder(ViewHolder holder, int position) {
3841
// 绑定数据
3942
String m = mData.get(position).getTradingMoney();
40-
String t = mData.get(position).getTradingType();
43+
int t = mData.get(position).getTradingType();
4144
holder.time.setText(mData.get(position).getTradingDateTime());
4245
holder.money.setText(m);
43-
holder.type.setText(t);
46+
switch (t) {
47+
case 2:
48+
holder.type.setText(activity.getString(R.string.recharge));
49+
break;
50+
case 6:
51+
holder.type.setText(activity.getString(R.string.consumption));
52+
break;
53+
default:
54+
holder.type.setText(t);
55+
break;
56+
}
4457
}
4558

4659
@Override
@@ -56,9 +69,9 @@ public static class ViewHolder extends RecyclerView.ViewHolder {
5669

5770
public ViewHolder(View itemView) {
5871
super(itemView);
59-
type = (TextView) itemView.findViewById(R.id.type);
60-
money = (TextView) itemView.findViewById(R.id.deal);
61-
time = (TextView) itemView.findViewById(R.id.time);
72+
type = itemView.findViewById(R.id.type);
73+
money = itemView.findViewById(R.id.deal);
74+
time = itemView.findViewById(R.id.time);
6275
}
6376
}
6477
}

0 commit comments

Comments
 (0)