diff --git a/app_main/src/main/java/cn/rrg/rdv/activities/tools/Proxmark3NewTerminalInitActivity.java b/app_main/src/main/java/cn/rrg/rdv/activities/tools/Proxmark3NewTerminalInitActivity.java index c8d010e7..7f96df6c 100644 --- a/app_main/src/main/java/cn/rrg/rdv/activities/tools/Proxmark3NewTerminalInitActivity.java +++ b/app_main/src/main/java/cn/rrg/rdv/activities/tools/Proxmark3NewTerminalInitActivity.java @@ -2,12 +2,17 @@ package cn.rrg.rdv.activities.tools; import android.content.Intent; import android.os.Bundle; +import android.view.View; +import android.widget.CheckBox; +import android.widget.CompoundButton; import androidx.annotation.Nullable; import com.termux.app.TermuxActivity; +import cn.rrg.rdv.R; import cn.rrg.rdv.activities.main.BaseActivity; +import cn.rrg.rdv.activities.main.PM3FlasherMainActivity; import cn.rrg.rdv.util.Commons; import cn.rrg.rdv.util.Proxmark3Installer; @@ -15,16 +20,43 @@ public class Proxmark3NewTerminalInitActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.act_pm3_terminal_init); - if (Commons.isPM3ClientDecompressed()) { - go(); - } else { - Proxmark3Installer.installIfNeed(this, new Runnable() { - @Override - public void run() { + + findViewById(R.id.btnFwFlash).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(activity, PM3FlasherMainActivity.class)); + } + }); + + findViewById(R.id.btnGoToTermux).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (Commons.isPM3ClientDecompressed()) { go(); + } else { + Proxmark3Installer.installIfNeed(activity, new Runnable() { + @Override + public void run() { + go(); + } + }); } - }); + } + }); + + CheckBox box = findViewById(R.id.ckBoxAutoGoTermux); + box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + Commons.setAutoGoToTermux(isChecked); + } + }); + + // Must have init pm3 client and check auto go! + if (Commons.getAutoGoToTermux() && Commons.isPM3ClientDecompressed()) { + go(); } } diff --git a/app_main/src/main/java/cn/rrg/rdv/application/Properties.java b/app_main/src/main/java/cn/rrg/rdv/application/Properties.java index 046b91c3..d7123d71 100644 --- a/app_main/src/main/java/cn/rrg/rdv/application/Properties.java +++ b/app_main/src/main/java/cn/rrg/rdv/application/Properties.java @@ -15,4 +15,6 @@ public class Properties { public static String k_app_language = "language"; //Key files select history! public static String k_common_rw_keyfile_selected = "commonRWKeyFilesSelected"; + // Auto Goto Termux View + public static String k_auto_goto_termux = "autoGotoTermuxView"; } diff --git a/app_main/src/main/java/cn/rrg/rdv/fragment/base/AppMainDevicesFragment.java b/app_main/src/main/java/cn/rrg/rdv/fragment/base/AppMainDevicesFragment.java index d4e0ef46..b2756f58 100644 --- a/app_main/src/main/java/cn/rrg/rdv/fragment/base/AppMainDevicesFragment.java +++ b/app_main/src/main/java/cn/rrg/rdv/fragment/base/AppMainDevicesFragment.java @@ -19,8 +19,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.termux.app.TermuxActivity; - import java.util.ArrayList; import cn.dxl.common.util.AppUtil; @@ -33,6 +31,7 @@ import cn.rrg.rdv.activities.connect.PN53XUsbBulkTransferActivity; import cn.rrg.rdv.activities.connect.Proxmark3Rdv4RRGConnectActivity; import cn.rrg.rdv.activities.main.GeneralNfcDeviceMain; import cn.rrg.rdv.activities.main.PN53XNfcMain; +import cn.rrg.rdv.activities.tools.Proxmark3NewTerminalInitActivity; import cn.rrg.rdv.binder.BannerImageViewBinder; import cn.rrg.rdv.binder.DeviceInfoViewBinder; import cn.rrg.rdv.binder.TitleTextViewBinder; @@ -177,7 +176,7 @@ public class AppMainDevicesFragment extends BaseFragment { deviceInfoBean = this; connectOrGotoFunctionMain( Proxmark3Rdv4RRGConnectActivity.class, - TermuxActivity.class + Proxmark3NewTerminalInitActivity.class ); } }); diff --git a/app_main/src/main/java/cn/rrg/rdv/fragment/tools/MainSettingsFragment.java b/app_main/src/main/java/cn/rrg/rdv/fragment/tools/MainSettingsFragment.java index 510a4065..a38bd4a4 100644 --- a/app_main/src/main/java/cn/rrg/rdv/fragment/tools/MainSettingsFragment.java +++ b/app_main/src/main/java/cn/rrg/rdv/fragment/tools/MainSettingsFragment.java @@ -3,7 +3,11 @@ package cn.rrg.rdv.fragment.tools; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.net.Uri; import android.os.Bundle; import androidx.annotation.NonNull; @@ -63,7 +67,6 @@ public class MainSettingsFragment initViews(view); initList(); - initActions(view.getContext()); } private void initViews(View v) { @@ -108,7 +111,7 @@ public class MainSettingsFragment }).show(); } }; - languageItem.setSubTitle("Set the language of the app."); + languageItem.setSubTitle(getString(R.string.title_set_language)); languageItem.setMessage(languageTran()); items.add(languageItem); @@ -124,13 +127,36 @@ public class MainSettingsFragment pm3Res.setMessage(Commons.isPM3ResInitialled() ? getString(R.string.initialized) : getString(R.string.uninitialized)); items.add(pm3Res); + items.add(new TitleBean(getString(R.string.other))); + + ItemTextBean openSourceItem = new ItemTextBean(getString(R.string.title_open_source)) { + @Override + public void onClick(View view, int pos) { + Uri uri = Uri.parse("https://github.com/RfidResearchGroup/RFIDtools"); + Intent intent = new Intent(Intent.ACTION_VIEW, uri); + startActivity(intent); + } + }; + openSourceItem.setMessage(getString(R.string.go2)); + openSourceItem.setSubTitle(getString(R.string.tips_opensource_welcome)); + items.add(openSourceItem); + multiTypeAdapter.notifyDataSetChanged(); } - private void initActions(Context context) { - + public static String getVersion(Context context) { + if (context == null) return "unknown"; + try { + PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); + return pi.versionName; + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return context.getString(R.string.unknown); + } } + private String languageTran() { String currentLanguage = Commons.getLanguage(); switch (currentLanguage) { diff --git a/app_main/src/main/java/cn/rrg/rdv/util/Commons.java b/app_main/src/main/java/cn/rrg/rdv/util/Commons.java index 764d8501..dd84da73 100644 --- a/app_main/src/main/java/cn/rrg/rdv/util/Commons.java +++ b/app_main/src/main/java/cn/rrg/rdv/util/Commons.java @@ -257,4 +257,14 @@ public class Commons { return new File(Paths.PM3_IMAGE_OS_FILE).exists() && new File(Paths.PM3_IMAGE_BOOT_FILE).exists(); } + + public static void setAutoGoToTermux(boolean auto) { + getPrivatePreferences().edit() + .putBoolean(Properties.k_auto_goto_termux, auto) + .apply(); + } + + public static boolean getAutoGoToTermux() { + return getPrivatePreferences().getBoolean(Properties.k_auto_goto_termux, false); + } } diff --git a/app_main/src/main/res/drawable/termux_view_example.png b/app_main/src/main/res/drawable/termux_view_example.png new file mode 100644 index 00000000..484af242 Binary files /dev/null and b/app_main/src/main/res/drawable/termux_view_example.png differ diff --git a/app_main/src/main/res/layout/act_app_settings.xml b/app_main/src/main/res/layout/act_app_settings.xml index fbd69be5..57016007 100644 --- a/app_main/src/main/res/layout/act_app_settings.xml +++ b/app_main/src/main/res/layout/act_app_settings.xml @@ -25,7 +25,7 @@ android:layout_alignParentBottom="true" android:layout_margin="16dp" android:gravity="center" - android:text="Power by Proxgrind\nDistributed by RFID Research Group (RRG)" + android:text="@string/tips_power" android:textSize="12sp" /> \ No newline at end of file diff --git a/app_main/src/main/res/layout/act_pm3_terminal_init.xml b/app_main/src/main/res/layout/act_pm3_terminal_init.xml new file mode 100644 index 00000000..d36c1605 --- /dev/null +++ b/app_main/src/main/res/layout/act_pm3_terminal_init.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + +