Skip to content

Commit 4932737

Browse files
author
tiann
committed
[Misc]: Introduce for TaiChi.
1 parent 9b7c124 commit 4932737

File tree

4 files changed

+105
-14
lines changed

4 files changed

+105
-14
lines changed

VirtualApp/app/src/main/java/io/virtualapp/home/ListAppFragment.java

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package io.virtualapp.home;
22

33
import android.app.Activity;
4+
import android.app.AlertDialog;
5+
import android.content.ComponentName;
46
import android.content.Context;
57
import android.content.Intent;
8+
import android.content.pm.PackageManager;
69
import android.database.Cursor;
710
import android.graphics.drawable.ColorDrawable;
811
import android.net.Uri;
@@ -78,6 +81,77 @@ public void onSaveInstanceState(Bundle outState) {
7881
mAdapter.saveInstanceState(outState);
7982
}
8083

84+
private void whatIsTaiChi() {
85+
AlertDialog alertDialog = new AlertDialog.Builder(getContext())
86+
.setTitle(R.string.what_is_exp)
87+
.setMessage(R.string.exp_tips)
88+
.setPositiveButton(R.string.exp_introduce_title, (dialog, which) -> {
89+
Intent t = new Intent(Intent.ACTION_VIEW);
90+
t.setData(Uri.parse("https://www.coolapk.com/apk/me.weishu.exp"));
91+
startActivity(t);
92+
}).setNegativeButton(R.string.about_donate_title, (dialog, which) -> {
93+
Intent t = new Intent(Intent.ACTION_VIEW);
94+
t.setData(Uri.parse("https://vxposed.com/donate.html"));
95+
startActivity(t);
96+
})
97+
.create();
98+
try {
99+
alertDialog.show();
100+
} catch (Throwable ignored) {
101+
}
102+
}
103+
104+
private void chooseInstallWay(Runnable runnable, String path) {
105+
AlertDialog alertDialog = new AlertDialog.Builder(getContext())
106+
.setTitle(R.string.install_choose_way)
107+
.setMessage(R.string.install_choose_content)
108+
.setPositiveButton(R.string.install_choose_taichi, (dialog, which) -> {
109+
PackageManager packageManager = getActivity().getPackageManager();
110+
try {
111+
packageManager.getPackageInfo("me.weishu.exp", 0);
112+
Intent intent = new Intent();
113+
intent.setComponent(new ComponentName("me.weishu.exp", "me.weishu.exp.ui.MainActivity"));
114+
intent.putExtra("path", path);
115+
startActivity(intent);
116+
} catch (PackageManager.NameNotFoundException e) {
117+
AlertDialog showInstallDialog = new AlertDialog.Builder(getContext())
118+
.setTitle(android.R.string.dialog_alert_title)
119+
.setMessage(R.string.install_taichi_not_exist)
120+
.setPositiveButton(R.string.install_go_to_install_exp, (dialog1, which1) -> {
121+
Intent t = new Intent(Intent.ACTION_VIEW);
122+
t.setData(Uri.parse("https://www.coolapk.com/apk/me.weishu.exp"));
123+
startActivity(t);
124+
})
125+
.create();
126+
showInstallDialog.show();
127+
} catch (Throwable e) {
128+
AlertDialog showInstallDialog = new AlertDialog.Builder(getContext())
129+
.setTitle(android.R.string.dialog_alert_title)
130+
.setMessage(R.string.install_taichi_while_old_version)
131+
.setPositiveButton(R.string.install_go_latest_exp, (dialog1, which1) -> {
132+
Intent t = new Intent(Intent.ACTION_VIEW);
133+
t.setData(Uri.parse("https://www.coolapk.com/apk/me.weishu.exp"));
134+
startActivity(t);
135+
})
136+
.create();
137+
showInstallDialog.show();
138+
}
139+
finishActivity();
140+
}).setNegativeButton("VirtualXposed", (dialog, which) -> {
141+
if (runnable != null) {
142+
runnable.run();
143+
}
144+
finishActivity();
145+
}).setNeutralButton(R.string.what_is_exp, ((dialog, which) -> {
146+
whatIsTaiChi();
147+
}))
148+
.create();
149+
try {
150+
alertDialog.show();
151+
} catch (Throwable ignored) {
152+
}
153+
}
154+
81155
@Override
82156
public void onViewCreated(View view, Bundle savedInstanceState) {
83157
mRecyclerView = (DragSelectRecyclerView) view.findViewById(R.id.select_app_recycler_view);
@@ -120,8 +194,7 @@ public boolean isSelectable(int position) {
120194
dataList.add(new AppInfoLite(info.packageName, info.path, info.fastOpen, info.disableMultiVersion));
121195
}
122196

123-
Installd.startInstallerActivity(getActivity(), dataList);
124-
getActivity().finish();
197+
chooseInstallWay(() -> Installd.startInstallerActivity(getActivity(), dataList), dataList.get(0).path);
125198
});
126199
mSelectFromExternal.setOnClickListener(v -> {
127200
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
@@ -172,9 +245,8 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
172245
if (path == null) {
173246
return;
174247
}
175-
Installd.handleRequestFromFile(getActivity(), path);
176248

177-
getActivity().finish();
249+
chooseInstallWay(() -> Installd.handleRequestFromFile(getActivity(), path), path);
178250
}
179251

180252
public static String getPath(Context context, Uri uri) {

VirtualApp/app/src/main/java/io/virtualapp/home/NewHomeActivity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ protected int dp2px(float dp) {
266266
}
267267

268268
private void alertForExp() {
269-
final String shown = "_exp_has_alert";
269+
final String shown = "_exp_has_alert2";
270270
boolean aBoolean = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(shown, false);
271271
if (aBoolean) {
272272
return;
@@ -295,13 +295,13 @@ private void alertForExp() {
295295
layout.addView(checkBox);
296296
mUiHandler.postDelayed(() -> {
297297
AlertDialog alertDialog = new AlertDialog.Builder(getContext())
298-
.setTitle("关于新项目EXP的说明")
298+
.setTitle(R.string.exp_introduce_title)
299299
.setView(layout)
300-
.setPositiveButton("查看详情说明", (dialog, which) -> {
300+
.setPositiveButton(R.string.exp_introduce_install, (dialog, which) -> {
301301
Intent t = new Intent(Intent.ACTION_VIEW);
302-
t.setData(Uri.parse("https://vxposed.com/exp.html"));
302+
t.setData(Uri.parse("https://www.coolapk.com/apk/me.weishu.exp"));
303303
startActivity(t);
304-
}).setNegativeButton("支持我", (dialog, which) -> {
304+
}).setNegativeButton(R.string.about_donate_title, (dialog, which) -> {
305305
Intent t = new Intent(Intent.ACTION_VIEW);
306306
t.setData(Uri.parse("https://vxposed.com/donate.html"));
307307
startActivity(t);

VirtualApp/app/src/main/res/values-zh-rCN/strings.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,14 @@
162162
<string name="install_permission_manager_tips">权限管理是通过 XPrivacyLua 实现的,是否立即下载(约2M)并安装?</string>
163163
<string name="advance_settings_enable_launcher_summary">开启之后,可以设置 VirtualXposed 作为系统桌面(重启 VitualXposed 生效)</string>
164164
<string name="advance_settings_enable_launcher">启用桌面功能</string>
165+
<string name="exp_introduce_title">另一种免Root用Xposed的方式</string>
166+
<string name="exp_introduce_install">去看看</string>
167+
<string name="what_is_exp">什么是太极?</string>
168+
<string name="install_choose_way">选择安装方式</string>
169+
<string name="install_choose_content" >除了 VirtualXposed 之外,您还可以通过 太极 来实现免Root使用 Xposed 模块。VirtualXposed 支持多开,太极则更加稳定。</string>
170+
<string name="install_choose_taichi">太极</string>
171+
<string name="install_taichi_not_exist">您没有安装 太极</string>
172+
<string name="install_go_to_install_exp">去安装太极</string>
173+
<string name="install_taichi_while_old_version">你安装的 太极 版本过低,请使用新版本的太极!</string>
174+
<string name="install_go_latest_exp">去安装新版太极</string>
165175
</resources>

VirtualApp/app/src/main/res/values/strings.xml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,21 @@
166166
<string name="install_file_manager_tips">File Manager is supported by Amaze File Manager, download(about 3M) and install it now?</string>
167167
<string name="settings_permission_manage_text">Permission Manager</string>
168168
<string name="install_permission_manager_tips">Permission Manager is implemented by XPrivacyLua, download(about 1.7M) and install it now?</string>
169-
<string name="exp_tips">VirtualXposed 自去年诞生以来,已经经历了相当一段时间;在项目的演进过程中,逐渐发现它的一些不足。\n因此我产生了从另外换一种方式实现免ROOT Xposed功能的想法,我把它称之为 E-Xposed,简称EXP;简单来说,它有如下特性:\n\n
169+
<string name="exp_tips">很久之前跟大家透露了 EXposed 的相关信息,经过一段时间的反馈和调整,已经到达一个小的里程碑。可能还有很多小伙伴不知道,今天就给大家介绍一下。\n\n
170170

171-
1. 不再使用双开。\n
172-
2. 直接运行原始APP。\n
173-
3. 不易被检测。\n
174-
</string>
171+
跟我之前创造的 VirtualXposed 一样,EXposed 也是一个免Root使用Xposed 模块的App;他俩各有千秋,EXposed 由于直接运行在原生系统,不论是性能还是稳定性都会好很多;而VirtualXposed 基于VA,天生支持多开。EXposed 才诞生一个月,其稳定性已经超越发展将近一年的 VirtualXposed。\n\n
172+
173+
目前 EXposed 已经上架应用商店,并且改名为 太极,大家可以在安装尝试一下。</string>
175174
<string name="advance_settings_enable_launcher_summary">When enabled, You can set VirtualXposed be the Launcher of system</string>
176175
<string name="advance_settings_enable_launcher">Enable Launcher</string>
176+
<string name="exp_introduce_title">An easy way to use Xposed</string>
177+
<string name="exp_introduce_install">Have a try</string>
178+
<string name="what_is_exp">What is TaiChi?</string>
179+
<string name="install_choose_way">Choose way to install</string>
180+
<string name="install_choose_content" >You can use Xposed modules through TaiChi except VirtualXposed. VirtualXposed supports Virtual-App,while TaiChi is much more stable.</string>
181+
<string name="install_choose_taichi">TaiChi</string>
182+
<string name="install_taichi_not_exist">TaiChi is not installed!</string>
183+
<string name="install_go_to_install_exp">Go to install TaiChi</string>
184+
<string name="install_taichi_while_old_version">The version of TaiChi installed is too old, Please install the latest Taichi!</string>
185+
<string name="install_go_latest_exp">Install the latest TaiChi</string>
177186
</resources>

0 commit comments

Comments
 (0)