| | |
| | | package com.runt.open.mvvm; |
| | | |
| | | import android.os.Bundle; |
| | | import android.Manifest; |
| | | import android.content.Intent; |
| | | |
| | | import com.google.android.material.bottomnavigation.BottomNavigationView; |
| | | |
| | | import androidx.appcompat.app.AppCompatActivity; |
| | | import androidx.activity.result.ActivityResult; |
| | | import androidx.activity.result.ActivityResultCallback; |
| | | import androidx.activity.result.ActivityResultLauncher; |
| | | import androidx.activity.result.contract.ActivityResultContracts; |
| | | import androidx.navigation.NavController; |
| | | import androidx.navigation.Navigation; |
| | | import androidx.navigation.ui.AppBarConfiguration; |
| | | import androidx.navigation.ui.NavigationUI; |
| | | |
| | | import com.permissionx.guolindev.PermissionX; |
| | | import com.runt.open.mvvm.base.activities.BaseActivity; |
| | | import com.runt.open.mvvm.data.PhoneDevice; |
| | | import com.runt.open.mvvm.databinding.ActivityMainBinding; |
| | | import com.runt.open.mvvm.listener.ResPonse; |
| | | import com.runt.open.mvvm.ui.login.RegisterLoginActivity; |
| | | import com.runt.open.mvvm.ui.main.MainViewModel; |
| | | |
| | | public class MainActivity extends AppCompatActivity { |
| | | |
| | | private ActivityMainBinding binding; |
| | | public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewModel> { |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | | |
| | | binding = ActivityMainBinding.inflate(getLayoutInflater()); |
| | | setContentView(binding.getRoot()); |
| | | |
| | | public void initViews() { |
| | | NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main); |
| | | NavigationUI.setupWithNavController(binding.navView, navController); |
| | | checkPermission(); |
| | | ActivityResultLauncher<Intent> launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { |
| | | @Override |
| | | public void onActivityResult(ActivityResult result) { |
| | | if(result.getResultCode() == RESULT_CODE_SUCESS){ |
| | | showToast("登录成功"); |
| | | } |
| | | } |
| | | }); |
| | | Intent intent = new Intent(mContext, RegisterLoginActivity.class); |
| | | launcher.launch(intent); |
| | | } |
| | | |
| | | private void showPermissionDialog(){ |
| | | |
| | | showDialog("警告", "软件需要权限才能运行", "申请权限", "退出", new ResPonse() { |
| | | @Override |
| | | public void doSuccess(Object obj) { |
| | | checkPermission(); |
| | | } |
| | | |
| | | @Override |
| | | public void doError(Object obj) { |
| | | finish(); |
| | | System.exit(0); |
| | | } |
| | | }); |
| | | } |
| | | private void checkPermission(){ |
| | | PermissionX.init(MainActivity.this) |
| | | .permissions(Manifest.permission.READ_PHONE_STATE) |
| | | .request((allGranted, grantedList, deniedList) -> { |
| | | if(allGranted){ |
| | | PhoneDevice.setDevice(mContext); |
| | | }else{ |
| | | showPermissionDialog(); |
| | | } |
| | | |
| | | }); |
| | | } |
| | | } |