Skip to content

Commit 2324349

Browse files
authored
Merge pull request #24 from xianglin1998/master
UI rebuild(80%).
2 parents f6e766e + fe6f4bf commit 2324349

File tree

76 files changed

+2448
-1716
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+2448
-1716
lines changed

.idea/misc.xml

Lines changed: 39 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app_main/src/main/AndroidManifest.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@
4747
</activity>
4848

4949
<activity android:name=".activities.tools.KeyFileEditActivity" />
50-
<activity android:name=".activities.tools.UnionActionActivity" />
5150
<activity android:name=".activities.tools.DumpEqualActivity" />
52-
<activity android:name=".activities.tools.DumpActivity" />
51+
<activity android:name=".activities.tools.DumpEditActivity" />
5352
<activity android:name=".activities.tools.FormatCovertActivity" />
5453
<activity android:name=".activities.tools.ChameleonSoltAliasesActivity" />
5554
<activity android:name=".fragment.tools.ToolsAccessFragment" />
@@ -105,6 +104,8 @@
105104
android:screenOrientation="nosensor" />
106105

107106
<activity android:name=".activities.connect.PN53XUsbBulkTransferActivity" />
107+
<activity android:name=".activities.tools.DumpListActivity" />
108+
<activity android:name=".activities.tools.KeyFileListActivity" />
108109

109110
</application>
110111

app_main/src/main/java/cn/rrg/rdv/activities/chameleon/ChameleonGUIActivity.java

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import java.util.List;
2929
import java.util.Locale;
3030

31+
import cn.dxl.common.util.FileUtils;
32+
import cn.dxl.common.util.IOUtils;
3133
import cn.dxl.common.widget.FilesSelectorDialog;
3234
import cn.rrg.chameleon.defined.BasicTypesCallback;
3335
import cn.rrg.chameleon.defined.ChameleonCMDSet;
@@ -41,19 +43,19 @@
4143
import cn.rrg.chameleon.defined.ResultCallback;
4244
import cn.rrg.rdv.activities.main.BaseActivity;
4345
import cn.rrg.rdv.activities.tools.ChameleonSoltAliasesActivity;
44-
import cn.rrg.rdv.activities.tools.DumpActivity;
46+
import cn.rrg.rdv.activities.tools.DumpEditActivity;
4547
import cn.rrg.rdv.application.Properties;
4648
import cn.dxl.common.posixio.Communication;
4749
import cn.rrg.rdv.R;
4850
import cn.rrg.rdv.callback.DumpCallback;
4951
import cn.rrg.rdv.models.DumpModel;
5052
import cn.dxl.common.widget.FillParentWidthDialog;
53+
import cn.rrg.rdv.util.Commons;
5154
import cn.rrg.rdv.util.Paths;
5255
import cn.dxl.common.util.RestartUtils;
5356
import cn.dxl.common.util.SpinnerInitState;
5457
import cn.dxl.common.util.StringUtil;
5558
import cn.dxl.common.widget.ToastUtil;
56-
import cn.dxl.common.util.FileUtil;
5759
import cn.dxl.common.util.HexUtil;
5860
import cn.dxl.common.implement.ItemSelectedListenerImpl;
5961
import cn.dxl.common.util.ViewUtil;
@@ -169,13 +171,13 @@ public void onClick(DialogInterface dialog, int which) {
169171
return;
170172
}
171173
//进行迭代,追加写入!
172-
FileOutputStream fos = FileUtil.getFos(keyFile, true);
174+
FileOutputStream fos = FileUtils.getFos(keyFile, true);
173175
for (ResultBean bean : resultBeanList) {
174176
String key = bean.getKey() + "\n";
175177
fos.write(key.getBytes());
176178
}
177179
//谨记关闭输出流!
178-
FileUtil.close(fos);
180+
IOUtils.close(fos);
179181
showToast(getString(R.string.finish));
180182
} catch (IOException e) {
181183
e.printStackTrace();
@@ -523,31 +525,9 @@ public void run() {
523525
} else {
524526
showToast("下载失败!");
525527
}
526-
//进行转换!
527-
//Log.d(LOG_TAG, "本次接收到的字节数: " + bos.size());
528528
byte[] result = Arrays.copyOfRange(bos.toByteArray(), 0, size);
529-
//Log.d(LOG_TAG, "本次接收到的数据: \n" + HexUtil.dumpHexString(result));
530-
//写入到实际文件!
531-
FileUtil.writeBytes(result, file, false);
532-
//调用dump编辑器进行显示!
533-
runOnUiThread(new Runnable() {
534-
@Override
535-
public void run() {
536-
new AlertDialog.Builder(context)
537-
.setTitle(R.string.tips)
538-
.setMessage("从变色龙内存中下载扇区数据貌似成功了,需要调用Dump编辑器显示么?")
539-
.setPositiveButton("显示", new DialogInterface.OnClickListener() {
540-
@Override
541-
public void onClick(DialogInterface dialog, int which) {
542-
startActivity(new Intent(context, DumpActivity.class)
543-
.putExtra("isConnected", false)
544-
.putExtra("isFileMode", true)
545-
.putExtra("file", file.getAbsolutePath()));
546-
}
547-
})
548-
.setNegativeButton("不用", null).show();
549-
}
550-
});
529+
FileUtils.writeBytes(result, file, false);
530+
Commons.gotoDumpEdit(ChameleonGUIActivity.this, file);
551531
} catch (Exception e) {
552532
e.printStackTrace();
553533
}
@@ -571,7 +551,7 @@ public void run() {
571551
Communication com = ExecutorImpl.getInstance().getCom();
572552
XModem128 modem = new XModem128(com);
573553
new FilesSelectorDialog.Builder(context)
574-
.setTitle("选择上载文件(二进制)!")
554+
.setTitle(R.string.tips_data_select)
575555
.setCancelable(false)
576556
.setCanDismiss(false)
577557
.setPathOnLoad(Paths.DUMP_DIRECTORY)
@@ -591,9 +571,9 @@ public void showContents(String[] contents) {
591571
}
592572
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
593573
if (modem.send(bis)) {
594-
showToast("上传成功!");
574+
showToast(getString(R.string.success));
595575
} else {
596-
showToast("上传失败!");
576+
showToast(getString(R.string.failed));
597577
}
598578
} catch (IOException ioe) {
599579
ioe.printStackTrace();

app_main/src/main/java/cn/rrg/rdv/activities/main/PN53XReaderMain.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package cn.rrg.rdv.activities.main;
22

3+
import android.os.Bundle;
4+
5+
import androidx.annotation.Nullable;
36
import androidx.fragment.app.Fragment;
47

58
import cn.rrg.rdv.activities.standard.AbsStandardM1Activity;
69
import cn.rrg.rdv.fragment.tools.PN53XShowInformationFragment;
710
import cn.rrg.rdv.fragment.tools.PN53xMFRWOperateFragment;
811

912
public class PN53XReaderMain extends AbsStandardM1Activity {
13+
1014
@Override
1115
protected Fragment getInformatinFragment() {
1216
return new PN53XShowInformationFragment();

app_main/src/main/java/cn/rrg/rdv/activities/proxmark3/official/Proxmark3ConsoleActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.io.File;
1212

13+
import cn.dxl.common.util.FileUtils;
1314
import cn.rrg.console.define.ICommandType;
1415
import cn.rrg.freo.IORedirector;
1516
import cn.rrg.console.define.ICommandTools;
@@ -18,7 +19,6 @@
1819
import cn.rrg.rdv.implement.EntryICommandType;
1920
import cn.rrg.rdv.util.Paths;
2021
import cn.rrg.rdv.R;
21-
import cn.dxl.common.util.FileUtil;
2222

2323
public abstract class Proxmark3ConsoleActivity
2424
extends BaseConsoleActivity
@@ -58,7 +58,7 @@ public void run() {
5858

5959
//通过键盘输入结束任务!
6060
protected void stopPM3Client4KeyBorad() {
61-
FileUtil.writeString(new File(Paths.COMMON_FORWARD_I), "\n", true);
61+
FileUtils.writeString(new File(Paths.COMMON_FORWARD_I), "\n", true);
6262
}
6363

6464
@Override

app_main/src/main/java/cn/rrg/rdv/activities/proxmark3/rdv4_rrg/Proxmark3Rdv4RRGRedTeamConsoleActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import cn.rrg.rdv.javabean.EasyCMDEntry;
2222
import cn.rrg.rdv.util.EasyBtnUtil;
2323
import cn.dxl.common.widget.DoubleInputDialog;
24-
import cn.dxl.common.util.MyArrays;
24+
import cn.dxl.common.util.ArrayUtils;
2525
import cn.dxl.common.widget.ToastUtil;
2626
import cn.dxl.common.util.ViewUtil;
2727
import cn.rrg.rdv.util.Paths;
@@ -196,6 +196,6 @@ private EasyCMDEntry[] getCMDs() {
196196
//默认先拿0组的按钮,以后做多组分页的时候再做其他组的处理!
197197
List<EasyCMDEntry> btns = easyBtnUtil.getButtons(0);
198198
if (btns == null) return null;
199-
return MyArrays.list2Arr(btns);
199+
return ArrayUtils.list2Arr(btns);
200200
}
201201
}

app_main/src/main/java/cn/rrg/rdv/activities/px53x/MfocConsoleActivity.java

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import android.content.DialogInterface;
44
import android.content.Intent;
5+
56
import androidx.appcompat.app.AlertDialog;
7+
68
import android.util.Log;
79
import android.view.View;
810

@@ -11,7 +13,8 @@
1113
import cn.rrg.console.define.ICommandTools;
1214
import cn.rrg.console.define.ICommandType;
1315
import cn.rrg.natives.MfocTools;
14-
import cn.rrg.rdv.activities.tools.DumpActivity;
16+
import cn.rrg.rdv.R;
17+
import cn.rrg.rdv.activities.tools.DumpEditActivity;
1518
import cn.rrg.rdv.util.DumpUtils;
1619
import cn.rrg.rdv.util.Paths;
1720
import cn.rrg.rdv.util.UnionAction;
@@ -86,23 +89,7 @@ public Runnable parseText(String output) {
8689

8790
@Override
8891
protected int startTest(ICommandTools cmd) {
89-
//判断联动密钥是否可用,拼接进去!
90-
String[] keys = UnionAction.getKeys();
91-
StringBuilder keyContact = new StringBuilder();
92-
if (keys.length >= 1) {
93-
for (String key : keys) {
94-
//判断需不需要添加!
95-
if (!isDefaultKeys(key)) {
96-
keyContact.append("-k ").append(key).append(" ");
97-
}
98-
}
99-
}
100-
mDefaultCMD = "mfoc " + keyContact.toString() + " -O " + mDefaultDumpFile;
101-
Log.d(LOG_TAG, "测试输出命令: " + mDefaultCMD);
102-
if (!isTesting()) {
103-
//没有正在执行的任务,先清空可能缓存的联动数据!
104-
UnionAction.removeData();
105-
}
92+
mDefaultCMD = "mfoc " + " -O " + mDefaultDumpFile;
10693
//执行父类,进行真正的逻辑判断,检查输入与是否在执行,进行下一步的操作!
10794
mIsRequsetMode = true;
10895
return super.startTest(cmd);
@@ -145,9 +132,9 @@ protected void onNewErrLine(String line) {
145132
@Override
146133
public void run() {
147134
new AlertDialog.Builder(MfocConsoleActivity.this)
148-
.setTitle("请求跳转")
149-
.setMessage("我们发现您的卡片是全加密,因此mfoc半加测试无法继续进行,是否允许我们请求mfcuk全加测试探测一个有效密钥?")
150-
.setPositiveButton("允许请求", new DialogInterface.OnClickListener() {
135+
.setTitle(R.string.tips)
136+
.setMessage(R.string.tips_mfcuk_request)
137+
.setPositiveButton(R.string.go2, new DialogInterface.OnClickListener() {
151138
@Override
152139
public void onClick(DialogInterface dialog, int which) {
153140
isNeedRequestMfcuk = true;
@@ -161,7 +148,7 @@ public void onClick(DialogInterface dialog, int which) {
161148
finish();
162149
}
163150
})
164-
.setNegativeButton("我再玩玩", null)
151+
.setNegativeButton(R.string.no, null)
165152
.show();
166153
}
167154
});
@@ -179,7 +166,7 @@ protected void onTestEnd() {
179166
for (String line : datas) {
180167
Log.d(LOG_TAG, "line: " + line);
181168
if (!DumpUtils.isBlockData(line)) {
182-
showToast("解析出来的数据格式有误!");
169+
showToast(getString(R.string.error));
183170
return;
184171
}
185172
}
@@ -189,14 +176,14 @@ protected void onTestEnd() {
189176
public void run() {
190177
//先提醒用户是否需要跳转!
191178
new AlertDialog.Builder(mContext)
192-
.setTitle("请求跳转")
193-
.setMessage("我们发现了可能有效的数据,需要我们跳转到Dump编辑器显示这个数据么?")
194-
.setPositiveButton("需要", new DialogInterface.OnClickListener() {
179+
.setTitle(R.string.tips)
180+
.setMessage(R.string.tips_mfoc_data_found)
181+
.setPositiveButton(R.string.go2, new DialogInterface.OnClickListener() {
195182
@Override
196183
public void onClick(DialogInterface dialog, int which) {
197184
//拥有足够的扇区数据,可以被解析显示!
198185
//TODO 因为控制台的输出有点问题,因此不能直接利用,需要打开输出的dump!
199-
Intent intent = new Intent(mContext, DumpActivity.class);
186+
Intent intent = new Intent(mContext, DumpEditActivity.class);
200187
intent.putExtra("isFileMode", true);
201188
intent.putExtra("isConnected", true);
202189
intent.putExtra("file", mDefaultDumpFile);
@@ -207,7 +194,7 @@ public void onClick(DialogInterface dialog, int which) {
207194
finish();
208195
}
209196
})
210-
.setNegativeButton("不需要", null).show();
197+
.setNegativeButton(R.string.no, null).show();
211198
}
212199
});
213200
}

app_main/src/main/java/cn/rrg/rdv/activities/standard/AbsStandardM1Activity.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ public abstract class AbsStandardM1Activity
4040
protected void onCreate(@Nullable Bundle savedInstanceState) {
4141
super.onCreate(savedInstanceState);
4242
requestWindowFeature(Window.FEATURE_NO_TITLE);
43-
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
4443
setContentView(R.layout.act_std_mf_main);
4544

4645
viewPager = findViewById(R.id.vpContainer);
@@ -79,13 +78,9 @@ public void onPageSelected(int i) {
7978
if (i == 1) {
8079
//隐藏底部的导航栏!
8180
setBnvAnimationAndVisible(false);
82-
//隐藏视图,触发动画!
83-
DisplayUtil.dismissStatusAndNavigationBar(activity);
8481
} else {
8582
//是0,则是第一个页面,我们需要显示底部的导航栏!
8683
setBnvAnimationAndVisible(true);
87-
//显示视图,触发动画!
88-
DisplayUtil.showStatusAndNavigationBar(activity);
8984
}
9085
}
9186
});

app_main/src/main/java/cn/rrg/rdv/activities/tools/AboutActicity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import java.io.File;
1919

2020
import cn.dxl.common.util.AppUtil;
21+
import cn.dxl.common.util.FileUtils;
2122
import cn.dxl.common.widget.FilesSelectorDialog;
2223
import cn.rrg.rdv.R;
2324
import cn.rrg.rdv.activities.main.BaseActivity;
2425
import cn.rrg.rdv.util.Commons;
25-
import cn.dxl.common.util.FileUtil;
2626
import cn.rrg.rdv.util.Paths;
2727
import cn.dxl.common.util.RestartUtils;
2828
import cn.dxl.common.widget.ToastUtil;
@@ -114,7 +114,7 @@ public void onClick(View v) {
114114
.setOnSelectListener(new FilesSelectorDialog.OnSelectListener() {
115115
@Override
116116
public void selected(File file) {
117-
FileUtil.shareFile(AboutActicity.this, file);
117+
FileUtils.shareFile(file);
118118
}
119119
})
120120
.create().show();
@@ -131,7 +131,7 @@ public void onClick(View v) {
131131
@Override
132132
public void onClick(DialogInterface dialog, int which) {
133133
Toast.makeText(AboutActicity.this, getString(R.string.cleaning), Toast.LENGTH_SHORT).show();
134-
FileUtil.delete(new File(Paths.TOOLS_DIRECTORY));
134+
FileUtils.delete(new File(Paths.TOOLS_DIRECTORY));
135135
Toast.makeText(AboutActicity.this, getString(R.string.clearFinish), Toast.LENGTH_SHORT).show();
136136
//必须重启APP
137137
RestartUtils.restartAPP(AboutActicity.this, 1000, new RestartUtils.OnExitAction() {

0 commit comments

Comments
 (0)