|
@@ -0,0 +1,126 @@
|
|
|
+package xn.update;
|
|
|
+
|
|
|
+import android.annotation.SuppressLint;
|
|
|
+import android.content.Intent;
|
|
|
+import android.content.IntentFilter;
|
|
|
+import android.os.Bundle;
|
|
|
+
|
|
|
+import androidx.activity.EdgeToEdge;
|
|
|
+import androidx.annotation.NonNull;
|
|
|
+import androidx.annotation.Nullable;
|
|
|
+import androidx.appcompat.app.AppCompatActivity;
|
|
|
+import androidx.core.graphics.Insets;
|
|
|
+import androidx.core.view.ViewCompat;
|
|
|
+import androidx.core.view.WindowInsetsCompat;
|
|
|
+
|
|
|
+import com.blankj.utilcode.util.ActivityUtils;
|
|
|
+import com.blankj.utilcode.util.AppUtils;
|
|
|
+import com.blankj.utilcode.util.LogUtils;
|
|
|
+import com.blankj.utilcode.util.SPUtils;
|
|
|
+import com.hikvision.dmb.display.InfoDisplayApi;
|
|
|
+import com.hikvision.dmb.system.InfoSystemApi;
|
|
|
+import com.hikvision.dmb.util.InfoUtilApi;
|
|
|
+import com.hjq.permissions.OnPermissionCallback;
|
|
|
+import com.hjq.permissions.Permission;
|
|
|
+import com.hjq.permissions.XXPermissions;
|
|
|
+import com.lxj.xpopup.XPopup;
|
|
|
+import com.lxj.xpopup.impl.InputConfirmPopupView;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import xn.update.databinding.ActivityMainBinding;
|
|
|
+
|
|
|
+public class MainActivity extends AppCompatActivity {
|
|
|
+ private ActivityMainBinding binding;
|
|
|
+ private InputConfirmPopupView inputConfirmPopupView;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreate(Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+
|
|
|
+ InfoSystemApi.openAdb();
|
|
|
+ InfoDisplayApi.setStatusBarEnable(false);
|
|
|
+ InfoDisplayApi.setNavigationBarEnable(false);
|
|
|
+ InfoUtilApi.setUsbSwitch(false);
|
|
|
+ SPUtils.getInstance().put("isRoot", 0 == InfoUtilApi.getRoot());
|
|
|
+
|
|
|
+ EdgeToEdge.enable(this);
|
|
|
+ binding = ActivityMainBinding.inflate(getLayoutInflater());
|
|
|
+ setContentView(binding.getRoot());
|
|
|
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
|
|
|
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
|
|
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
|
|
|
+ return insets;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onPostCreate(@Nullable Bundle savedInstanceState) {
|
|
|
+ super.onPostCreate(savedInstanceState);
|
|
|
+ binding.versionNameTV.setText(AppUtils.getAppVersionName());
|
|
|
+ inputConfirmPopupView = new XPopup.Builder(this).asInputConfirm("Tips", "请输入管理员密码",
|
|
|
+ text -> ActivityUtils.startActivity(SettingActivity.class));
|
|
|
+ binding.logoIV.setOnLongClickListener(v -> {
|
|
|
+ if (AppUtils.isAppDebug()) {
|
|
|
+ ActivityUtils.startActivity(SettingActivity.class);
|
|
|
+ } else {
|
|
|
+ inputConfirmPopupView.show();
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ InfoUtilApi.enableProtection(AppUtils.getAppPackageName(), false);
|
|
|
+ InfoSystemApi.setLauncherForced(AppUtils.getAppPackageName());
|
|
|
+ requestPermission();
|
|
|
+ // 监听分钟广播
|
|
|
+ registerReceiver(new TimeTickReceiver(), new IntentFilter(Intent.ACTION_TIME_TICK));
|
|
|
+ }
|
|
|
+
|
|
|
+ private void requestPermission() {
|
|
|
+ // 全量权限申请
|
|
|
+ XXPermissions.with(this)
|
|
|
+ .permission(Permission.READ_EXTERNAL_STORAGE)
|
|
|
+ .permission(Permission.WRITE_EXTERNAL_STORAGE)
|
|
|
+ // 通知栏权限
|
|
|
+ .permission(Permission.NOTIFICATION_SERVICE)
|
|
|
+ .request(new OnPermissionCallback() {
|
|
|
+ @Override
|
|
|
+ public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
|
|
|
+ if (allGranted) {
|
|
|
+ LogUtils.d("所有权限已获取");
|
|
|
+ } else {
|
|
|
+ new XPopup.Builder(MainActivity.this)
|
|
|
+ .dismissOnBackPressed(false)
|
|
|
+ .dismissOnTouchOutside(false)
|
|
|
+ .asConfirm("Tips", "您必须同意所有权限才可以继续使用", ()
|
|
|
+ -> requestPermission())
|
|
|
+ .show();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
|
|
|
+ OnPermissionCallback.super.onDenied(permissions, doNotAskAgain);
|
|
|
+ if (doNotAskAgain) {
|
|
|
+ new XPopup.Builder(MainActivity.this)
|
|
|
+ .dismissOnBackPressed(false)
|
|
|
+ .dismissOnTouchOutside(false)
|
|
|
+ .asConfirm("Tips", "您必须同意所有权限才可以继续使用", ()
|
|
|
+ -> XXPermissions.startPermissionActivity(MainActivity.this, permissions))
|
|
|
+ .show();
|
|
|
+ } else {
|
|
|
+ new XPopup.Builder(MainActivity.this)
|
|
|
+ .dismissOnBackPressed(false)
|
|
|
+ .dismissOnTouchOutside(false)
|
|
|
+ .asConfirm("Tips", "您必须同意所有权限才可以继续使用", ()
|
|
|
+ -> requestPermission())
|
|
|
+ .show();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @SuppressLint("MissingSuperCall")
|
|
|
+ @Override
|
|
|
+ public void onBackPressed() {
|
|
|
+ }
|
|
|
+}
|