|
|
@@ -1,17 +1,28 @@
|
|
|
package com.izouma.booster.activity;
|
|
|
|
|
|
+import android.app.AppOpsManager;
|
|
|
+import android.app.usage.UsageStats;
|
|
|
+import android.app.usage.UsageStatsManager;
|
|
|
import android.content.Context;
|
|
|
+import android.content.Intent;
|
|
|
import android.content.pm.PackageManager;
|
|
|
+import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
|
+import android.provider.Settings;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import androidx.activity.result.ActivityResultCallback;
|
|
|
+import androidx.activity.result.contract.ActivityResultContract;
|
|
|
+import androidx.activity.result.contract.ActivityResultContracts;
|
|
|
import androidx.annotation.NonNull;
|
|
|
+import androidx.annotation.Nullable;
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
import androidx.lifecycle.ViewModelProvider;
|
|
|
import androidx.viewpager2.widget.ViewPager2;
|
|
|
|
|
|
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
|
|
import com.izouma.booster.fragment.HomeFragment;
|
|
|
import com.izouma.booster.fragment.MyFragment;
|
|
|
import com.izouma.booster.R;
|
|
|
@@ -21,6 +32,8 @@ import com.izouma.booster.adapter.VpAdapter;
|
|
|
import com.izouma.booster.databinding.ActivityMainBinding;
|
|
|
import com.izouma.booster.viewModel.HomeViewModel;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
private ActivityMainBinding binding;
|
|
|
private HomeViewModel viewModel;
|
|
|
@@ -65,6 +78,22 @@ public class MainActivity extends AppCompatActivity {
|
|
|
boolean getPermission = requestForPermission(getBaseContext());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ protected void onResume() {
|
|
|
+ super.onResume();
|
|
|
+ if (!hasAppOpsPermission()) {
|
|
|
+ new MaterialAlertDialogBuilder(this)
|
|
|
+ .setMessage("need app usage permission")
|
|
|
+ .setPositiveButton("open settings", (dialog, which) -> {
|
|
|
+ dialog.dismiss();
|
|
|
+ dialog.cancel();
|
|
|
+ startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));
|
|
|
+ })
|
|
|
+ .setCancelable(false)
|
|
|
+ .show();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public boolean requestForPermission(Context context) {
|
|
|
|
|
|
boolean isPermissionOn = true;
|
|
|
@@ -100,4 +129,14 @@ public class MainActivity extends AppCompatActivity {
|
|
|
// permissions this app might request.
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private boolean hasAppOpsPermission() {
|
|
|
+ AppOpsManager appOps = (AppOpsManager)
|
|
|
+ getSystemService(Context.APP_OPS_SERVICE);
|
|
|
+ int mode = 0;
|
|
|
+ mode = appOps.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS,
|
|
|
+ android.os.Process.myUid(), getPackageName());
|
|
|
+ return mode == AppOpsManager.MODE_ALLOWED;
|
|
|
+ }
|
|
|
+
|
|
|
}
|