Advertisement
am_dot_com

DDM 2021-11-30

Nov 30th, 2021 (edited)
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. package com.joythis.android.simplestbrowser;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.appcompat.app.AppCompatActivity;
  5.  
  6. import android.Manifest;
  7. import android.content.Context;
  8. import android.content.Intent;
  9. import android.content.pm.PackageManager;
  10. import android.net.Uri;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.ListView;
  17.  
  18. import java.util.ArrayList;
  19. import java.util.Map;
  20.  
  21. public class MyPhoneCaller extends AppCompatActivity {
  22.  
  23. public final String[] NEED_THESE_PERMS = {
  24. //Manifest.permission.INTERNET,
  25. Manifest.permission.CALL_PHONE
  26. };
  27.  
  28. Context mContext;
  29. EditText mEtTel;
  30. Button mBtnTel;
  31. ListView mLvFeedback;
  32. ArrayList<String> mAlFeedback;
  33. ArrayAdapter<String> mAd;
  34.  
  35. /*
  36. GRANTED => [p1]
  37. DENIED => [p2, p3]
  38. */
  39. Map<Integer, ArrayList<String>> getPermissionsStatus(
  40. String[] pPermsToAnalyze
  41. ){
  42. boolean bGranted, bDenied;
  43.  
  44. return null;
  45. }//
  46.  
  47.  
  48.  
  49. View.OnClickListener mClickHandler = new View.OnClickListener() {
  50. @Override
  51. public void onClick(View v) {
  52. switch(v.getId()){
  53. case R.id.idBtnTel:
  54. actionPhone();
  55. break;
  56. }
  57. }
  58. };
  59.  
  60. void actionPhone(){
  61. String strTel = mEtTel.getText().toString();
  62. makePhoneCall(strTel);
  63. }
  64.  
  65. public final static int
  66. CALL_ME_ON_THIS_CODE_WHEN_RESULT_IS_READY = 321;
  67.  
  68. void requestNecessaryPermissions(){
  69. this.requestPermissions(
  70. NEED_THESE_PERMS,
  71. CALL_ME_ON_THIS_CODE_WHEN_RESULT_IS_READY
  72. );
  73. }//requestNecessaryPermissions
  74.  
  75. void makePhoneCall(String pStrTel){
  76. Intent intentMakePhoneCall = new Intent(
  77. Intent.ACTION_CALL
  78. );
  79. try {
  80. Uri uriTel = Uri.parse("tel:" + pStrTel);
  81. intentMakePhoneCall.setData(uriTel);
  82.  
  83. startActivity(intentMakePhoneCall);
  84. }
  85. catch (Exception e){
  86. mAlFeedback.add(e.toString());
  87. mAd.notifyDataSetChanged();
  88. }
  89. }//makePhoneCall
  90.  
  91. @Override
  92. protected void onCreate(Bundle savedInstanceState) {
  93. super.onCreate(savedInstanceState);
  94. setContentView(R.layout.activity_my_phone_caller);
  95.  
  96. init();
  97. }
  98.  
  99. void init(){
  100. mContext = this;
  101. mEtTel = findViewById(R.id.idEtTel);
  102. mBtnTel = findViewById(R.id.idBtnTel);
  103. mLvFeedback = findViewById(R.id.idLvFeedback);
  104. mAlFeedback = new ArrayList<>();
  105. mAd = new ArrayAdapter<>(
  106. mContext,
  107. android.R.layout.simple_list_item_1,
  108. mAlFeedback
  109. );
  110. mLvFeedback.setAdapter(mAd);
  111.  
  112. mBtnTel.setOnClickListener(mClickHandler);
  113.  
  114. requestNecessaryPermissions();
  115. }//init
  116.  
  117. @Override
  118. public void onRequestPermissionsResult(
  119. int requestCode, //our code
  120. @NonNull String[] permissions, //[p1, p2]
  121. @NonNull int[] grantResults) //[GRANTED, DENIED]
  122. {
  123. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  124.  
  125. boolean bGranted, bDenied;
  126. for (int idx=0; idx<permissions.length; idx++){
  127. String p = permissions[idx];
  128. int iUserResponse = grantResults[idx];
  129. bGranted =
  130. iUserResponse==PackageManager.PERMISSION_GRANTED;
  131. bDenied =
  132. iUserResponse==PackageManager.PERMISSION_DENIED;
  133.  
  134. if (bGranted){
  135. mAlFeedback.add(p+" was granted");
  136. }
  137.  
  138. if (bDenied){
  139. mAlFeedback.add(p+" was denied");
  140. }
  141. }//for
  142. mAd.notifyDataSetChanged();
  143. }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement