version:6.2
fix: update:增加隐私声明和用户协议
This commit is contained in:
58
app/src/main/java/com/uiui/aios/activity/PolicyActivity.java
Normal file
58
app/src/main/java/com/uiui/aios/activity/PolicyActivity.java
Normal file
@@ -0,0 +1,58 @@
|
||||
package com.uiui.aios.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.uiui.aios.R;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
public class PolicyActivity extends AppCompatActivity {
|
||||
private TextView textView;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_policy);
|
||||
textView = findViewById(R.id.textView);
|
||||
Intent intent = getIntent();
|
||||
if (intent == null) {
|
||||
finish();
|
||||
} else {
|
||||
int rawText = intent.getIntExtra("content", 0);
|
||||
if (rawText == 0) {
|
||||
finish();
|
||||
} else {
|
||||
try {
|
||||
//获取文件中的内容
|
||||
InputStream inputStream = getResources().openRawResource(rawText);
|
||||
//将文件中的字节转换为字符
|
||||
InputStreamReader isReader = new InputStreamReader(inputStream, "UTF-8");
|
||||
//使用bufferReader去读取字符
|
||||
BufferedReader reader = new BufferedReader(isReader);
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
try {
|
||||
String out;
|
||||
while ((out = reader.readLine()) != null) {
|
||||
stringBuilder.append(out).append("\n");
|
||||
}
|
||||
textView.setText(stringBuilder);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,7 @@ import androidx.viewpager.widget.ViewPager;
|
||||
import com.alarmclock.uiui.IAlarmAidlInterface;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.uiui.aios.BuildConfig;
|
||||
import com.uiui.aios.R;
|
||||
import com.uiui.aios.base.BaseActivity;
|
||||
@@ -35,6 +36,7 @@ import com.uiui.aios.base.BaseFragmentPagerAdapter;
|
||||
import com.uiui.aios.bean.AlarmItem;
|
||||
import com.uiui.aios.bean.DesktopIcon;
|
||||
import com.uiui.aios.dialog.PasswordDialog;
|
||||
import com.uiui.aios.dialog.PrivacyPolicyDialog;
|
||||
import com.uiui.aios.fragment.AppListFragment;
|
||||
import com.uiui.aios.fragment.ControlFragment;
|
||||
import com.uiui.aios.fragment.SecondFragment;
|
||||
@@ -78,6 +80,8 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
|
||||
private int appListIndex = 2;
|
||||
private int defaultCurrent = 1;
|
||||
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
|
||||
private HomeWatcher mHomeWatcher;
|
||||
|
||||
@Override
|
||||
@@ -332,6 +336,15 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
Log.e(TAG, "onResume: ");
|
||||
int agree = mMMKV.decodeInt("AgreePrivacyPolicy", 0);
|
||||
if (agree == 0) {
|
||||
showPolicyDialog();
|
||||
} else {
|
||||
getData();
|
||||
}
|
||||
}
|
||||
|
||||
private void getData(){
|
||||
if (!isNotificationListenersEnabled()) {
|
||||
ToastUtil.show("请授予\"" + getString(R.string.app_name) + "\"使用通知权");
|
||||
gotoNotificationAccessSetting(this);
|
||||
@@ -349,6 +362,27 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
|
||||
addHomeWatcher();
|
||||
}
|
||||
|
||||
private void showPolicyDialog() {
|
||||
PrivacyPolicyDialog privacyPolicyDialog = new PrivacyPolicyDialog(this);
|
||||
privacyPolicyDialog.setCancelable(false);
|
||||
privacyPolicyDialog.setPrivacyPolicyCallback(new PrivacyPolicyDialog.PrivacyPolicyCallback() {
|
||||
@Override
|
||||
public void onCancel() {
|
||||
privacyPolicyDialog.dismiss();
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfirm() {
|
||||
mMMKV.encode("AgreePrivacyPolicy", 1);
|
||||
privacyPolicyDialog.dismiss();
|
||||
getData();
|
||||
}
|
||||
});
|
||||
privacyPolicyDialog.show();
|
||||
}
|
||||
|
||||
|
||||
private void addHomeWatcher() {
|
||||
if (mHomeWatcher == null) {
|
||||
mHomeWatcher = new HomeWatcher(this);
|
||||
|
||||
113
app/src/main/java/com/uiui/aios/dialog/PrivacyPolicyDialog.java
Normal file
113
app/src/main/java/com/uiui/aios/dialog/PrivacyPolicyDialog.java
Normal file
@@ -0,0 +1,113 @@
|
||||
package com.uiui.aios.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.uiui.aios.R;
|
||||
import com.uiui.aios.activity.PolicyActivity;
|
||||
|
||||
public class PrivacyPolicyDialog extends AlertDialog {
|
||||
private Context mContext;
|
||||
private TextView tv_content;
|
||||
private TextView tv_cancel;
|
||||
private TextView tv_confirm;
|
||||
|
||||
public PrivacyPolicyDialog(@NonNull Context context) {
|
||||
super(context, R.style.CustomDialog);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
public PrivacyPolicyDialog(@NonNull Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
public PrivacyPolicyDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
|
||||
super(context, cancelable, cancelListener);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
public void setPrivacyPolicyCallback(PrivacyPolicyCallback callback) {
|
||||
this.privacyPolicyCallback = callback;
|
||||
}
|
||||
|
||||
private PrivacyPolicyCallback privacyPolicyCallback;
|
||||
|
||||
public interface PrivacyPolicyCallback {
|
||||
void onCancel();
|
||||
|
||||
void onConfirm();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.dialog_privacy_policy);
|
||||
tv_content = findViewById(R.id.tv_content);
|
||||
tv_cancel = findViewById(R.id.tv_cancel);
|
||||
tv_confirm = findViewById(R.id.tv_confirm);
|
||||
SpannableString spannableString = new SpannableString(mContext.getResources().getString(R.string.privacy_agreement_content));
|
||||
spannableString.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
Intent intent = new Intent(mContext, PolicyActivity.class);
|
||||
intent.putExtra("content",R.raw.privacy_policy);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
}, 115, 121, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), 115, 121, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
Intent intent = new Intent(mContext, PolicyActivity.class);
|
||||
intent.putExtra("content",R.raw.user_agreement);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
}, 122, 128, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), 122, 128, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
// spannableString.setSpan(new ClickableSpan() {
|
||||
// @Override
|
||||
// public void onClick(@NonNull View widget) {
|
||||
//
|
||||
// }
|
||||
// }, 129, 137, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
// spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), 129, 137, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
tv_content.setText(spannableString);
|
||||
tv_content.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
tv_cancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (privacyPolicyCallback != null) {
|
||||
privacyPolicyCallback.onCancel();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
tv_confirm.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (privacyPolicyCallback != null) {
|
||||
privacyPolicyCallback.onConfirm();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -411,7 +411,7 @@ public class MainService extends BaseService implements MainSContact.MainSView,
|
||||
@Download.onTaskRunning
|
||||
protected void running(DownloadTask task) {
|
||||
Log.e("aria", "正在下载:" + task.getPercent() + ":" + task.getExtendField());
|
||||
ToastUtil.show("正在下载:" + task.getPercent() + "%" + "\t" + Formatter.formatFileSize(MainService.this, task.getSpeed()) + "/s");
|
||||
// ToastUtil.show("正在下载:" + task.getPercent() + "%" + "\t" + Formatter.formatFileSize(MainService.this, task.getSpeed()) + "/s");
|
||||
}
|
||||
|
||||
@Download.onTaskComplete
|
||||
|
||||
Reference in New Issue
Block a user