Skip to content

Commit

Permalink
接入腾讯Bugly,更新隐私协议,升级AGP 7.4.2
Browse files Browse the repository at this point in the history
以及加入了分渠道打包
  • Loading branch information
Yuyuko1024 committed Jun 26, 2023
1 parent 665d633 commit 65be73b
Show file tree
Hide file tree
Showing 14 changed files with 918 additions and 11 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@
.externalNativeBuild
.cxx
local.properties
/.idea/stat.log
10 changes: 10 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

627 changes: 627 additions & 0 deletions .idea/stat.log

Large diffs are not rendered by default.

29 changes: 26 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import java.text.SimpleDateFormat

plugins {
id 'com.android.application'
}
Expand All @@ -6,14 +8,21 @@ android {
android.defaultConfig.vectorDrawables.useSupportLibrary = true
compileSdk 32

def buildSerial = new SimpleDateFormat("MMddHHmm").format(new Date())

defaultConfig {
applicationId "org.exthmui.microlauncher.duoqin"
minSdkVersion 26
targetSdkVersion 32
versionCode 20000
versionName "1.1.0"
versionName "1.1.0-${buildSerial}"
flavorDimensions "channel"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
// 设置支持的SO库架构,不设置时默认支持全部架构
abiFilters 'armeabi' , 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}

viewBinding{
Expand All @@ -27,10 +36,23 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

productFlavors {
coolapk {
manifestPlaceholders = [BUGLY_APP_CHANNEL: "coolapk"]
dimension = "channel"
}
github {
manifestPlaceholders = [BUGLY_APP_CHANNEL: "github"]
dimension = "channel"
}
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
namespace 'org.exthmui.microlauncher.duoqin'
}

dependencies {
Expand All @@ -44,9 +66,10 @@ dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.preference:preference:1.2.0'
implementation 'pub.devrel:easypermissions:3.0.0'
implementation 'com.tencent.bugly:crashreport:4.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'com.github.GrenderG:Toasty:1.5.2'
implementation 'io.github.medyo:android-about-page:2.0.0'
implementation 'de.psdev.licensesdialog:licensesdialog:2.1.0'
Expand Down
5 changes: 4 additions & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,7 @@
public static *** e(...);
}

-renamesourcefileattribute SourceFile
-renamesourcefileattribute SourceFile

-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
19 changes: 17 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.exthmui.microlauncher.duoqin">
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<uses-permission android:name="android.permission.INTERNET" />
Expand All @@ -13,6 +12,8 @@
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BIND_APPWIDGET"
tools:ignore="ProtectedPermissions"/>
<uses-permission
Expand All @@ -35,6 +36,15 @@
android:supportsRtl="true"
android:theme="@style/Theme.MicroLauncher">

<!-- 配置APP ID -->
<meta-data
android:name="BUGLY_APPID"
android:value="e8f8feabcc" />
<!-- 配置APP渠道号 -->
<meta-data
android:name="BUGLY_APP_CHANNEL"
android:value="${BUGLY_APP_CHANNEL}" />

<service
android:process=":restart"
android:name=".service.KillSelfSrv"
Expand Down Expand Up @@ -115,6 +125,11 @@
android:exported="false"
android:label="@string/keyguard_title"
android:theme="@style/Theme.MaterialComponents.DayNight.NoActionBar" />
<activity android:name=".activity.PrivacyLicenseActivity"
android:exported="false"
android:label="隐私协议"
android:excludeFromRecents="true"
android:clearTaskOnLaunch="true"/>
</application>

</manifest>
104 changes: 104 additions & 0 deletions app/src/main/assets/privacy.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<html>
<head>
<title>隐私政策</title>
</head>
<body>
<h1>隐私政策</h1>
<div>更新日期:<strong>2023/6/26</strong></div>
<div>生效日期:<strong>2023/6/26</strong></div>
<h2>导言</h2>
<p>
<i>微型启动器多亲版</i> 是一款由 <i>Yuyuko1024</i> (以下简称“我们”)提供的 Android 端软件产品。
您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。
本《隐私政策》与您所使用的 <i>微型启动器多亲版</i> 服务息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。
</p>
<p><strong>您使用或继续使用我们的服务,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。</strong></p>
<p>如对本《隐私政策》或相关事宜有任何问题,请通过 <strong>[email protected]</strong> 或者 <a href="https://github.com/Yuyuko1024">GitHub</a> 与我们联系。</p>

<h2>1. 我们收集的信息</h2>
<p>我们或我们的第三方合作伙伴提供服务时,可能会收集、储存和使用下列与您有关的信息。如果您不提供相关信息,可能无法无法达到相关后续维护服务拟达到的效果。</p>

<ul>
<li><strong>软件运行日志信息</strong>,指您使用我们的服务时,软件可能通过使用内嵌的<a href="https://bugly.qq.com/">腾讯 Bugly SDK</a>采集您的设备标识符及运行日志以及相关技术收集的信息,包括您的<strong>设备信息</strong><strong>运行和错误日志</strong>等,并将该等信息储存为日志信息,为您提供后续的软件用户体验和维护。您可以通过本页面拒绝标识符或相关技术的使用。</li>
</ul>

<p>有关<a href="https://bugly.qq.com/">腾讯 Bugly SDK</a>的一些服务条款,请参阅 <a href="https://privacy.qq.com/document/preview/fc748b3d96224fdb825ea79e132c1a56">Bugly SDK个人信息保护规则</a></p>


<h2>2. 信息的存储</h2>
<strong>2.1 信息存储的方式和期限</strong>
<ul>
<li>我们会通过安全的方式存储您的信息,包括本地存储(例如利用APP进行数据缓存)、数据库和服务器日志。</li>
<li>一般情况下,我们只会在为实现服务目的所必需的时间内或法律法规规定的条件下存储您的个人信息。</li>
</ul>

<strong>2.2 信息存储的地域</strong>
<ul>
<li>我们会按照法律法规规定,将境内收集的用户个人信息存储于中国境内。</li>
<li>目前我们不会跨境传输或存储您的个人信息。将来如需跨境传输或存储的,我们会向您告知信息出境的目的、接收方、安全保证措施和安全风险,并征得您的同意。</li>
</ul>

<strong>2.3 产品或服务停止运营时的通知</strong>
<ul>
<li>当我们的产品或服务发生停止运营的情况时,我们将以推送通知、公告等形式通知您,并在合理期限内删除您的个人信息或进行匿名化处理,法律法规另有规定的除外。</li>
</ul>

<h2>3. 信息安全</h2>
<p>
我们使用各种安全技术和程序,以防信息的丢失、不当使用、未经授权阅览或披露。例如,在某些服务中,我们将利用加密技术(例如SSL)来保护您提供的个人信息。但请您理解,由于技术的限制以及可能存在的各种恶意手段,在互联网行业,即便竭尽所能加强安全措施,也不可能始终保证信息百分之百的安全。您需要了解,您接入我们的服务所用的系统和通讯网络,有可能因我们可控范围外的因素而出现问题。
</p>

<h2>4. 我们如何使用信息</h2>
<p>我们可能将在向您提供服务的过程之中所收集的信息用作下列用途:</p>
<ul>
<li>向您提供服务;</li>
<li>在我们提供服务时,用于身份验证、客户服务、安全防范、诈骗监测、存档和备份用途,确保我们向您提供的产品和服务的安全性;</li>
<li>帮助我们设计新服务,改善我们现有服务;</li>
<li>使我们更加了解您如何接入和使用我们的服务,从而针对性地回应您的个性化需求,例如语言设定、位置设定、个性化的帮助服务和指示,或对您和其他用户作出其他方面的回应;</li>
<li>软件认证或管理软件升级;</li>
<li>让您参与有关我们产品和服务的调查。</li>
</ul>

<h2>5. 信息共享</h2>
<p>
目前,我们不会主动共享或转让您的个人信息至第三方,如存在其他共享或转让您的个人信息或您需要我们将您的个人信息共享或转让至第三方情形时,我们会直接或确认第三方征得您对上述行为的明示同意。
</p>
<p>
我们不会向合作伙伴分享可用于识别您个人身份的信息(例如您的姓名或电子邮件地址),除非您明确授权。
</p>
<p>
我们不会对外公开披露所收集的个人信息,如必须公开披露时,我们会向您告知此次公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的明示同意。
</p>
<p>
随着我们业务的持续发展,我们有可能进行合并、收购、资产转让等交易,我们将告知您相关情形,按照法律法规及不低于本《隐私政策》所要求的标准继续保护或要求新的控制者继续保护您的个人信息。
</p>
<p>
另外,根据相关法律法规及国家标准,以下情形中,我们可能会共享、转让、公开披露个人信息无需事先征得您的授权同意:
</p>
<ul>
<li>与国家安全、国防安全直接相关的;</li>
<li>与公共安全、公共卫生、重大公共利益直接相关的;</li>
<li>犯罪侦查、起诉、审判和判决执行等直接相关的;</li>
<li>出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;</li>
<li>个人信息主体自行向社会公众公开个人信息的;</li>
<li>从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。</li>
</ul>

<h2>6. 您的权利</h2>
<p>
在您使用我们的服务期间,我们可能会视产品具体情况为您提供相应的操作设置,以便您可以查询、删除、更正或撤回您的相关个人信息,您可参考相应的具体指引进行操作。此外,我们还设置了投诉举报渠道,您的意见将会得到及时的处理。如果您无法通过上述途径和方式行使您的个人信息主体权利,您可以通过本《隐私政策》中提供的联系方式提出您的请求,我们会按照法律法规的规定予以反馈。
</p>


<h2>7. 变更</h2>
<p>
我们可能适时修订本《隐私政策》的条款。当变更发生时,我们会在版本更新时向您提示新的《隐私政策》,并向您说明生效日期。请您仔细阅读变更后的《隐私政策》内容,<strong>若您继续使用我们的服务,即表示您同意我们按照更新后的《隐私政策》处理您的个人信息。</strong>
</p>

<h2>8. 未成年人保护</h2>
<p>
我们鼓励父母或监护人指导未满十八岁的未成年人使用我们的服务。我们建议未成年人鼓励他们的父母或监护人阅读本《隐私政策》,并建议未成年人在提交的个人信息之前寻求父母或监护人的同意和指导。
</p>

</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.exthmui.microlauncher.duoqin.BuildConfig;
import org.exthmui.microlauncher.duoqin.R;
import org.exthmui.microlauncher.duoqin.databinding.ActivityMainBinding;
import org.exthmui.microlauncher.duoqin.utils.BuglyUtils;
import org.exthmui.microlauncher.duoqin.widgets.CallSmsCounter;
import org.exthmui.microlauncher.duoqin.widgets.CarrierTextView;
import org.exthmui.microlauncher.duoqin.widgets.ClockViewManager;
Expand All @@ -51,6 +52,7 @@ public class MainActivity extends AppCompatActivity implements SharedPreferences
private boolean xiaoai_enable;
private boolean dialpad_enable;
private boolean callsms_counter;
private boolean bugly_init;
private boolean torch = false;
private String clock_locate;
private CameraManager manager;
Expand Down Expand Up @@ -184,6 +186,14 @@ private void loadSettings(){
mainBinding.clock.textClock.setTextSize(Float.parseFloat(clock_size));
xiaoai_enable = sharedPreferences.getBoolean("preference_main_xiaoai_ai",true);
dialpad_enable = sharedPreferences.getBoolean("preference_dial_pad",true);
bugly_init = sharedPreferences.getBoolean("bugly_init",false);
if(bugly_init){
BuglyUtils.initBugly(this);
} else {
Intent intent = new Intent(this, PrivacyLicenseActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}

private void setClockLocate(String clockLocate) {
Expand Down Expand Up @@ -253,6 +263,9 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
case "switch_preference_callsms_counter":
callsms_counter = sharedPreferences.getBoolean("switch_preference_callsms_counter",false);
break;
case "preference_bugly_init":
bugly_init = sharedPreferences.getBoolean("bugly_init",false);
break;
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package org.exthmui.microlauncher.duoqin.activity;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.tencent.bugly.crashreport.CrashReport;

import org.exthmui.microlauncher.duoqin.databinding.ActivityPrivacyPolicyBinding;
import org.exthmui.microlauncher.duoqin.utils.BuglyUtils;

import es.dmoral.toasty.Toasty;

public class PrivacyLicenseActivity extends AppCompatActivity {
private final String LICENSE_URL = "file:///android_asset/privacy.html";
private ActivityPrivacyPolicyBinding binding;
private SharedPreferences sharedPreferences;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityPrivacyPolicyBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
sharedPreferences = getSharedPreferences(getPackageName()+"_preferences", Context.MODE_PRIVATE);
binding.webview.loadUrl(LICENSE_URL);
binding.accept.setOnClickListener(v -> {
sharedPreferences.edit().putBoolean("bugly_init", true).apply();
BuglyUtils.initBugly(this);
finish();
});
binding.reject.setOnClickListener(v -> {
sharedPreferences.edit().putBoolean("bugly_init", false).apply();
finish();
});
}

@Override
public void onBackPressed() {
Toasty.info(this, "请阅读并同意隐私政策!", Toasty.LENGTH_SHORT).show();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.exthmui.microlauncher.duoqin.utils;

import android.content.Context;
import android.util.Log;

import com.tencent.bugly.crashreport.CrashReport;

import org.exthmui.microlauncher.duoqin.BuildConfig;

public class BuglyUtils {
private static final String TAG = BuglyUtils.class.getSimpleName();
public static void initBugly(Context context) {
Log.i(TAG, "initBugly: ");
CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(context);
strategy.setAppReportDelay(10000);
CrashReport.initCrashReport(context.getApplicationContext(), strategy);
CrashReport.setIsDevelopmentDevice(context, BuildConfig.DEBUG);
}

}
Loading

0 comments on commit 65be73b

Please sign in to comment.