Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.joythis.android.simplestbrowser;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import android.Manifest;
- import android.content.Context;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.net.Uri;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ListView;
- import java.util.ArrayList;
- import java.util.Map;
- public class MyPhoneCaller extends AppCompatActivity {
- public final String[] NEED_THESE_PERMS = {
- //Manifest.permission.INTERNET,
- Manifest.permission.CALL_PHONE
- };
- Context mContext;
- EditText mEtTel;
- Button mBtnTel;
- ListView mLvFeedback;
- ArrayList<String> mAlFeedback;
- ArrayAdapter<String> mAd;
- /*
- GRANTED => [p1]
- DENIED => [p2, p3]
- */
- Map<Integer, ArrayList<String>> getPermissionsStatus(
- String[] pPermsToAnalyze
- ){
- boolean bGranted, bDenied;
- return null;
- }//
- View.OnClickListener mClickHandler = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.idBtnTel:
- actionPhone();
- break;
- }
- }
- };
- void actionPhone(){
- String strTel = mEtTel.getText().toString();
- makePhoneCall(strTel);
- }
- public final static int
- CALL_ME_ON_THIS_CODE_WHEN_RESULT_IS_READY = 321;
- void requestNecessaryPermissions(){
- this.requestPermissions(
- NEED_THESE_PERMS,
- CALL_ME_ON_THIS_CODE_WHEN_RESULT_IS_READY
- );
- }//requestNecessaryPermissions
- void makePhoneCall(String pStrTel){
- Intent intentMakePhoneCall = new Intent(
- Intent.ACTION_CALL
- );
- try {
- Uri uriTel = Uri.parse("tel:" + pStrTel);
- intentMakePhoneCall.setData(uriTel);
- startActivity(intentMakePhoneCall);
- }
- catch (Exception e){
- mAlFeedback.add(e.toString());
- mAd.notifyDataSetChanged();
- }
- }//makePhoneCall
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_my_phone_caller);
- init();
- }
- void init(){
- mContext = this;
- mEtTel = findViewById(R.id.idEtTel);
- mBtnTel = findViewById(R.id.idBtnTel);
- mLvFeedback = findViewById(R.id.idLvFeedback);
- mAlFeedback = new ArrayList<>();
- mAd = new ArrayAdapter<>(
- mContext,
- android.R.layout.simple_list_item_1,
- mAlFeedback
- );
- mLvFeedback.setAdapter(mAd);
- mBtnTel.setOnClickListener(mClickHandler);
- requestNecessaryPermissions();
- }//init
- @Override
- public void onRequestPermissionsResult(
- int requestCode, //our code
- @NonNull String[] permissions, //[p1, p2]
- @NonNull int[] grantResults) //[GRANTED, DENIED]
- {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- boolean bGranted, bDenied;
- for (int idx=0; idx<permissions.length; idx++){
- String p = permissions[idx];
- int iUserResponse = grantResults[idx];
- bGranted =
- iUserResponse==PackageManager.PERMISSION_GRANTED;
- bDenied =
- iUserResponse==PackageManager.PERMISSION_DENIED;
- if (bGranted){
- mAlFeedback.add(p+" was granted");
- }
- if (bDenied){
- mAlFeedback.add(p+" was denied");
- }
- }//for
- mAd.notifyDataSetChanged();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement