Skip to content

Commit 29e3489

Browse files
author
维术
committed
[Exposed-UI]: Add About page.
1 parent c6b63c1 commit 29e3489

File tree

7 files changed

+109
-17
lines changed

7 files changed

+109
-17
lines changed

VirtualApp/app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,5 @@ dependencies {
6262
compile 'com.flurry.android:analytics:6.9.2'
6363
compile 'com.kyleduo.switchbutton:library:1.4.6'
6464
compile('com.allenliu.versionchecklib:library:1.8.3')
65+
compile 'com.github.medyo:android-about-page:1.2.2'
6566
}

VirtualApp/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
android:screenOrientation="portrait"
5252
android:theme="@style/UITheme"
5353
/>
54+
<activity android:name=".about.AboutActivity" />
5455

5556
<service android:name=".update.VAVersionService"
5657
android:exported="true"
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package io.virtualapp.about;
2+
3+
import android.content.ClipData;
4+
import android.content.ClipboardManager;
5+
import android.content.pm.PackageInfo;
6+
import android.content.pm.PackageManager;
7+
import android.os.Bundle;
8+
import android.support.annotation.Nullable;
9+
import android.view.Gravity;
10+
import android.view.View;
11+
import android.widget.Toast;
12+
13+
import java.util.Calendar;
14+
15+
import io.virtualapp.R;
16+
import io.virtualapp.abs.ui.VActivity;
17+
import mehdi.sakout.aboutpage.AboutPage;
18+
import mehdi.sakout.aboutpage.Element;
19+
20+
/**
21+
* author: weishu on 18/1/12.
22+
*/
23+
public class AboutActivity extends VActivity {
24+
@Override
25+
protected void onCreate(@Nullable Bundle savedInstanceState) {
26+
super.onCreate(savedInstanceState);
27+
28+
29+
View aboutPage = new AboutPage(this)
30+
.isRTL(false)
31+
.setImage(R.mipmap.ic_launcher)
32+
.addItem(getVersionElement())
33+
.addItem(getFeedbackElement())
34+
.addEmail("[email protected]")
35+
.addWebsite("https://github.com/android-hacker/VAExposed")
36+
.addGitHub("tiann")
37+
.addItem(getCopyRightsElement())
38+
.create();
39+
40+
setContentView(aboutPage);
41+
}
42+
43+
Element getCopyRightsElement() {
44+
Element copyRightsElement = new Element();
45+
final String copyrights = String.format(getString(R.string.copy_right), Calendar.getInstance().get(Calendar.YEAR));
46+
copyRightsElement.setTitle(copyrights);
47+
copyRightsElement.setIconDrawable(R.drawable.about_icon_copy_right);
48+
copyRightsElement.setIconTint(mehdi.sakout.aboutpage.R.color.about_item_icon_color);
49+
copyRightsElement.setIconNightTint(android.R.color.white);
50+
copyRightsElement.setGravity(Gravity.CENTER);
51+
copyRightsElement.setOnClickListener(v ->
52+
Toast.makeText(v.getContext(), copyrights, Toast.LENGTH_SHORT).show());
53+
return copyRightsElement;
54+
}
55+
56+
Element getVersionElement() {
57+
Element version = new Element();
58+
String versionName = "unknown";
59+
try {
60+
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
61+
versionName = packageInfo.versionName;
62+
} catch (PackageManager.NameNotFoundException ignored) {
63+
}
64+
version.setTitle(getResources().getString(R.string.about_version_title, versionName));
65+
return version;
66+
}
67+
68+
Element getFeedbackElement() {
69+
Element feedback = new Element();
70+
final String qqGroup = "597478474";
71+
feedback.setTitle(getResources().getString(R.string.about_feedback_title, qqGroup));
72+
73+
feedback.setOnClickListener(v -> {
74+
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
75+
if (clipboardManager != null) {
76+
clipboardManager.setPrimaryClip(ClipData.newPlainText(null, qqGroup));
77+
}
78+
Toast.makeText(v.getContext(), getResources().getString(R.string.about_feedback_tips), Toast.LENGTH_SHORT).show();
79+
});
80+
return feedback;
81+
}
82+
}

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

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import android.support.v7.widget.StaggeredGridLayoutManager;
2020
import android.support.v7.widget.helper.ItemTouchHelper;
2121
import android.text.SpannableString;
22-
import android.text.method.LinkMovementMethod;
2322
import android.text.util.Linkify;
2423
import android.view.ContextThemeWrapper;
2524
import android.view.Menu;
@@ -36,6 +35,7 @@
3635

3736
import io.virtualapp.R;
3837
import io.virtualapp.VCommends;
38+
import io.virtualapp.about.AboutActivity;
3939
import io.virtualapp.abs.nestedadapter.SmartRecyclerAdapter;
4040
import io.virtualapp.abs.ui.VActivity;
4141
import io.virtualapp.abs.ui.VUiKit;
@@ -149,16 +149,11 @@ private void initMenu() {
149149

150150
final SpannableString s = new SpannableString(getResources().getString(R.string.menu_feedback_string));
151151
Linkify.addLinks(s, Linkify.ALL);
152-
menu.add(getResources().getString(R.string.menu_feedback)).setIcon(R.drawable.ic_settings).setOnMenuItemClickListener(item -> {
153-
final AlertDialog d = new AlertDialog.Builder(this)
154-
.setTitle(getResources().getString(R.string.menu_feedback))
155-
.setMessage(s)
156-
.show();
157-
try {
158-
((TextView) d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
159-
} catch (Throwable ignored) {}
160-
return false;
152+
menu.add(getResources().getString(R.string.menu_about)).setIcon(R.drawable.ic_settings).setOnMenuItemClickListener(item -> {
153+
startActivity(new Intent(HomeActivity.this, AboutActivity.class));
154+
return true;
161155
});
156+
162157
menu.add(getResources().getString(R.string.menu_reboot)).setIcon(R.drawable.ic_reboot).setOnMenuItemClickListener(item -> {
163158
VirtualCore.get().killAllApps();
164159
return true;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportHeight="24.0"
5+
android:viewportWidth="24.0">
6+
<path
7+
android:fillColor="#000000"
8+
android:pathData="M10.08,10.86c0.05,-0.33 0.16,-0.62 0.3,-0.87s0.34,-0.46 0.59,-0.62c0.24,-0.15 0.54,-0.22 0.91,-0.23 0.23,0.01 0.44,0.05 0.63,0.13 0.2,0.09 0.38,0.21 0.52,0.36s0.25,0.33 0.34,0.53 0.13,0.42 0.14,0.64h1.79c-0.02,-0.47 -0.11,-0.9 -0.28,-1.29s-0.4,-0.73 -0.7,-1.01 -0.66,-0.5 -1.08,-0.66 -0.88,-0.23 -1.39,-0.23c-0.65,0 -1.22,0.11 -1.7,0.34s-0.88,0.53 -1.2,0.92 -0.56,0.84 -0.71,1.36S8,11.29 8,11.87v0.27c0,0.58 0.08,1.12 0.23,1.64s0.39,0.97 0.71,1.35 0.72,0.69 1.2,0.91 1.05,0.34 1.7,0.34c0.47,0 0.91,-0.08 1.32,-0.23s0.77,-0.36 1.08,-0.63 0.56,-0.58 0.74,-0.94 0.29,-0.74 0.3,-1.15h-1.79c-0.01,0.21 -0.06,0.4 -0.15,0.58s-0.21,0.33 -0.36,0.46 -0.32,0.23 -0.52,0.3c-0.19,0.07 -0.39,0.09 -0.6,0.1 -0.36,-0.01 -0.66,-0.08 -0.89,-0.23 -0.25,-0.16 -0.45,-0.37 -0.59,-0.62s-0.25,-0.55 -0.3,-0.88 -0.08,-0.67 -0.08,-1v-0.27c0,-0.35 0.03,-0.68 0.08,-1.01zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z" />
9+
</vector>

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@
2525
<string name="versionchecklib_confirm">立即更新</string>
2626
<string name="versionchecklib_cancel">取消</string>
2727
<string name="menu_virtual_location">虚拟定位</string>
28-
<string name="menu_feedback">问题反馈</string>
29-
<string name="menu_feedback_string">开源项目地址:https://github.com/android-hacker/VAExposed\n 问题反馈地址:https://github.com/android-hacker/exposed/issues\n
30-
\n遇到问题请详细描述你的机型,系统版本,ROM,操作流程,问题情况,如果是开发者,最好能提供Logcat日志;谢谢配合(简单的"用不了,有问题, 黑屏了"等等解决不了任何问题) 欢迎提出任何有价值的BUG和建议 :)\n\n
31-
QQ群:597478474</string>
28+
<string name="menu_about">关于</string>
3229
<string name="menu_reboot">重启</string>
3330
<string name="installing_tips">正在安装 %1$s…</string>
3431
<string name="update_success_tips">%1$s 更新成功!</string>
3532
<string name="install_success_tips">模块安装完后需要去XposedInstaller的模块设置里勾选才能生效哦~</string>
3633
<string name="install_fail_tips">%1$s 安装失败,错误码: %2$s</string>
34+
<string name="about_page_description">VAExposed是一个基于VirtualApp的,免Root、免解锁BL、免刷机使用Xposed框架的APP。</string>
35+
<string name="about_feedback_title">反馈 QQ 群: %1$s</string>
36+
<string name="about_feedback_tips">QQ号已经复制到剪切版</string>
37+
<string name="about_version_title">版本号: %1$s</string>
3738
</resources>

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,15 @@
2525
<string name="versionchecklib_confirm">Download</string>
2626
<string name="versionchecklib_cancel">Cancel</string>
2727
<string name="menu_virtual_location">Virtual Location</string>
28-
<string name="menu_feedback">Feedback</string>
29-
<string name="menu_feedback_string">Project: https://github.com/android-hacker/VAExposed\n Feedback:https://github.com/android-hacker/exposed/issues\n\n
30-
QQ群:597478474</string>
28+
<string name="menu_about">About</string>
3129
<string name="menu_reboot">Reboot</string>
3230
<string name="installing_tips">Installing %1$s…</string>
3331
<string name="update_success_tips">Update %1$s success!</string>
3432
<string name="install_success_tips">Xposed module will not take effect after check it in XposedInstaller\'s module setting!</string>
3533
<string name="install_fail_tips">Install %1$s failed: %2$s</string>
34+
<string name="copy_right" translatable="false" >Copyrights © %1$d</string>
35+
<string name="about_page_description">VAExposed is an app provides the ability to use Xposed module without root, unlock the bootload or modify sysyem image.</string>
36+
<string name="about_feedback_title">Feedback QQ Group: %1$s</string>
37+
<string name="about_feedback_tips">QQ group number has been copied to clipboard!</string>
38+
<string name="about_version_title">Version: %1$s</string>
3639
</resources>

0 commit comments

Comments
 (0)