Guest User

Untitled

a guest
Feb 9th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.59 KB | None | 0 0
  1. 09-18 10:55:40.456: E/AndroidRuntime(3273): FATAL EXCEPTION: AsyncTask #1
  2. 09-18 10:55:40.456: E/AndroidRuntime(3273): java.lang.RuntimeException: An error
  3. occured while executing doInBackground()
  4. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  5. android.os.AsyncTask$3.done(AsyncTask.java:200)
  6. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  7. java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
  8. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  9. java.util.concurrent.FutureTask.setException(FutureTask.java:125)
  10. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  11. java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
  12. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  13. java.util.concurrent.FutureTask.run(FutureTask.java:138)
  14. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  15. java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
  16. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  17. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
  18. 09-18 10:55:40.456: E/AndroidRuntime(3273): at java.lang.Thread.run(Thread.java:1019)
  19. 09-18 10:55:40.456: E/AndroidRuntime(3273): Caused by: java.lang.RuntimeException: Can't create
  20. handler inside thread that has not called Looper.prepare()
  21. 09-18 10:55:40.456: E/AndroidRuntime(3273): at android.os.Handler.<init>(Handler.java:121)
  22. 09-18 10:55:40.456: E/AndroidRuntime(3273): at android.widget.Toast.<init>(Toast.java:68)
  23. 09-18 10:55:40.456: E/AndroidRuntime(3273): at android.widget.Toast.makeText(Toast.java:231)
  24. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  25. com.widgets.application.MainActivity$sendMessageAsync.doInBackground(MainActivity.java:260)
  26. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  27. com.widgets.application.MainActivity$sendMessageAsync.doInBackground(MainActivity.java:1)
  28. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  29. android.os.AsyncTask$2.call(AsyncTask.java:185)
  30. 09-18 10:55:40.456: E/AndroidRuntime(3273): at
  31. java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
  32. 09-18 10:55:40.456: E/AndroidRuntime(3273): ... 4 more
  33. 09-18 10:55:43.432: E/WindowManager(3273): Activity com.widgets.application.MainActivity has leaked
  34. window com.android.internal.policy.impl.PhoneWindow$DecorView@40594188 that was originally added here
  35. 09-18 10:55:43.432: E/WindowManager(3273): android.view.WindowLeaked: Activity
  36. com.widgets.application.MainActivity has leaked window
  37. com.android.internal.policy.impl.PhoneWindow$DecorView@40594188 that was originally added here
  38. 09-18 10:55:43.432: E/WindowManager(3273): at android.view.ViewRoot.<init>(ViewRoot.java:258)
  39. 09-18 10:55:43.432: E/WindowManager(3273): at
  40. android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
  41. 09-18 10:55:43.432: E/WindowManager(3273): at
  42. android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
  43. 09-18 10:55:43.432: E/WindowManager(3273): at
  44. android.view.Window$LocalWindowManager.addView(Window.java:424)
  45. 09-18 10:55:43.432: E/WindowManager(3273): at android.app.Dialog.show(Dialog.java:241)
  46. 09-18 10:55:43.432: E/WindowManager(3273): at
  47. android.app.ProgressDialog.show(ProgressDialog.java:107)
  48. 09-18 10:55:43.432: E/WindowManager(3273): at
  49. android.app.ProgressDialog.show(ProgressDialog.java:90)
  50. 09-18 10:55:43.432: E/WindowManager(3273): at
  51. com.widgets.application.MainActivity.onClick(MainActivity.java:331)
  52. 09-18 10:55:43.432: E/WindowManager(3273): at android.view.View.performClick(View.java:2485)
  53. 09-18 10:55:43.432: E/WindowManager(3273): at android.view.View$PerformClick.run(View.java:9080)
  54. 09-18 10:55:43.432: E/WindowManager(3273): at android.os.Handler.handleCallback(Handler.java:587)
  55. 09-18 10:55:43.432: E/WindowManager(3273): at android.os.Handler.dispatchMessage(Handler.java:92)
  56. 09-18 10:55:43.432: E/WindowManager(3273): at android.os.Looper.loop(Looper.java:123)
  57. 09-18 10:55:43.432: E/WindowManager(3273): at
  58. android.app.ActivityThread.main(ActivityThread.java:3683)
  59. 09-18 10:55:43.432: E/WindowManager(3273): at java.lang.reflect.Method.invokeNative(Native Method)
  60. 09-18 10:55:43.432: E/WindowManager(3273): at java.lang.reflect.Method.invoke(Method.java:507)
  61. 09-18 10:55:43.432: E/WindowManager(3273): at
  62. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
  63. 09-18 10:55:43.432: E/WindowManager(3273): at
  64. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
  65. 09-18 10:55:43.432: E/WindowManager(3273): at dalvik.system.NativeStart.main(Native Method)
  66.  
  67. public class MainActivity extends Activity implements OnPanelListener, OnClickListener, OnItemClickListener {
  68.  
  69. final static int RQS_PICK_CONTACT = 1;
  70. public static String sendSmsToNumber = "";
  71.  
  72. private EditText editText, editUserName, editPassword;
  73. private ArrayList<Map<String, String>> mPeopleList;
  74. private SimpleAdapter mAdapter;
  75. private AutoCompleteTextView mTxtPhoneNo;
  76. private Panel bottomPanel;
  77. private Panel topPanel;
  78. private Button btnsend;
  79. private ProgressDialog pd;
  80. //private String gateway_name;
  81. private Spinner spinner1;
  82. Context context;
  83.  
  84. @Override
  85. public void onCreate(Bundle savedInstanceState) {
  86. super.onCreate(savedInstanceState);
  87. setContentView(R.layout.activity_main);
  88. editUserName = (EditText) findViewById(R.id.editTextUserName);
  89. editPassword = (EditText) findViewById(R.id.editTextPassword);
  90. mTxtPhoneNo = (AutoCompleteTextView) findViewById(R.id.mmWhoNo);
  91. mTxtPhoneNo.setTextColor(Color.BLACK);
  92. editText = (EditText) findViewById(R.id.editTextMessage);
  93. spinner1 = (Spinner) findViewById(R.id.spinnerGateway);
  94. btnsend = (Button) findViewById(R.id.btnSend);
  95. btnsend.setOnClickListener(this);
  96. mPeopleList = new ArrayList<Map<String, String>>();
  97. PopulatePeopleList();
  98. mAdapter = new SimpleAdapter(this, mPeopleList, R.layout.custcontview,
  99. new String[] { "Name", "Phone", "Type" }, new int[] {
  100. R.id.ccontName, R.id.ccontNo, R.id.ccontType });
  101. mTxtPhoneNo.setAdapter(mAdapter);
  102. mTxtPhoneNo.setOnItemClickListener(this);
  103. Button buttonPickContact = (Button) findViewById(R.id.btnContact);
  104. buttonPickContact.setOnClickListener(new Button.OnClickListener() {
  105. public void onClick(View arg0) {
  106. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  107. intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
  108. startActivityForResult(intent, RQS_PICK_CONTACT);
  109. }
  110. });
  111. init();
  112. Panel panel;
  113. topPanel = panel = (Panel) findViewById(R.id.mytopPanel);
  114. panel.setOnPanelListener(this);
  115. panel.setInterpolator(new BounceInterpolator(Type.OUT));
  116.  
  117. }
  118.  
  119. @Override
  120. protected void onActivityResult(int requestCode, int resultCode, Intent data){
  121. super.onActivityResult(requestCode, resultCode, data);
  122. if(requestCode == RQS_PICK_CONTACT){
  123. if(resultCode == RESULT_OK){
  124. Uri contactData = data.getData();
  125. Cursor cursor = managedQuery(contactData, null, null, null, null);
  126. cursor.moveToFirst();
  127. String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
  128. String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
  129. sendSmsToNumber = number;
  130. trimContactNumber();
  131. mTxtPhoneNo.setText(name + " <" + number + ">");
  132. }
  133. }
  134. }
  135.  
  136. public void trimContactNumber() {
  137. sendSmsToNumber = sendSmsToNumber.replace("-", "");
  138. sendSmsToNumber = sendSmsToNumber.replace("+91", "");
  139. if(sendSmsToNumber.length() > 10){
  140. sendSmsToNumber = sendSmsToNumber.substring(1, sendSmsToNumber.length());
  141. }
  142. }
  143.  
  144. public void PopulatePeopleList() {
  145. mPeopleList.clear();
  146. Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
  147. while (people.moveToNext()) {
  148. String contactName = people.getString(people.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
  149. String contactId = people.getString(people.getColumnIndex(ContactsContract.Contacts._ID));
  150. String hasPhone = people.getString(people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
  151.  
  152. if ((Integer.parseInt(hasPhone) > 0)) {
  153. Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
  154. null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
  155. while (phones.moveToNext()) {
  156. String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
  157. String numberType = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
  158. Map<String, String> NamePhoneType = new HashMap<String, String>();
  159. NamePhoneType.put("Name", contactName);
  160. NamePhoneType.put("Phone", phoneNumber);
  161. if (numberType.equals("0"))
  162. NamePhoneType.put("Type", "Work");
  163. else if (numberType.equals("1"))
  164. NamePhoneType.put("Type", "Home");
  165. else if (numberType.equals("2"))
  166. NamePhoneType.put("Type", "Mobile");
  167. else
  168. NamePhoneType.put("Type", "Other");
  169. mPeopleList.add(NamePhoneType);
  170. }
  171. phones.close();
  172. }
  173. }
  174. people.close();
  175. startManagingCursor(people);
  176. }
  177.  
  178. public void onItemClick(AdapterView<?> av, View arg1, int index, long arg3) {
  179. @SuppressWarnings("unchecked")
  180. Map<String, String> map = (Map<String, String>) av.getItemAtPosition(index);
  181. String name = map.get("Name");
  182. String number = map.get("Phone");
  183. mTxtPhoneNo.setText(name + " <" + number + ">");
  184. sendSmsToNumber = number;
  185. trimContactNumber();
  186.  
  187. }
  188.  
  189. @Override
  190. public boolean onCreateOptionsMenu(Menu menu) {
  191. getMenuInflater().inflate(R.menu.activity_main, menu);
  192. return true;
  193. }
  194.  
  195. private void init() {
  196. editUserName = (EditText) findViewById(R.id.editTextUserName);
  197. editPassword = (EditText) findViewById(R.id.editTextPassword);
  198. readPerson();
  199. }
  200.  
  201. public void reset(View view) {
  202. PreferenceConnector.getEditor(this).remove(PreferenceConnector.NAME).commit();
  203. PreferenceConnector.getEditor(this).remove(PreferenceConnector.SURNAME).commit();
  204. PreferenceConnector.getEditor(this).remove(PreferenceConnector.AGE).commit();
  205. readPerson();
  206. }
  207.  
  208. private void readPerson() {
  209. editUserName.setText(PreferenceConnector.readString(this,
  210. PreferenceConnector.NAME, null));
  211. editPassword.setText(PreferenceConnector.readString(this,
  212. PreferenceConnector.SURNAME, null));
  213. }
  214.  
  215. public void save(View view) {
  216. String userNameTxt = editUserName.getText().toString();
  217. String PasswdTxt = editPassword.getText().toString();
  218.  
  219. if (userNameTxt != null)
  220. PreferenceConnector.writeString(this, PreferenceConnector.NAME,userNameTxt);
  221. if (PasswdTxt != null)
  222. PreferenceConnector.writeString(this, PreferenceConnector.SURNAME,PasswdTxt);
  223.  
  224. }
  225.  
  226. @Override
  227. public boolean onKeyDown(int keyCode, KeyEvent event) {
  228. if (keyCode == KeyEvent.KEYCODE_T) {
  229. topPanel.setOpen(!topPanel.isOpen(), false);
  230. return false;
  231. }
  232. if (keyCode == KeyEvent.KEYCODE_B) {
  233. bottomPanel.setOpen(!bottomPanel.isOpen(), true);
  234. return false;
  235. }
  236. return super.onKeyDown(keyCode, event);
  237. }
  238.  
  239. public void onPanelClosed(Panel panel) {
  240. String panelName = getResources().getResourceEntryName(panel.getId());
  241. Log.d("TestPanels", "Panel [" + panelName + "] closed");
  242. }
  243.  
  244. public void onPanelOpened(Panel panel) {
  245. String panelName = getResources().getResourceEntryName(panel.getId());
  246. Log.d("TestPanels", "Panel [" + panelName + "] opened");
  247. }
  248.  
  249. public boolean isOnline() {
  250. ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  251. NetworkInfo netInfo = cm.getActiveNetworkInfo();
  252. if (netInfo != null && netInfo.isConnectedOrConnecting()) {
  253. return true;
  254. }
  255. return false;
  256. }
  257.  
  258. public boolean isValid() {
  259. if (editUserName.getText().length() == 10 && editPassword.getText().length() != 0 && sendSmsToNumber.length() >= 10 && editText.getText().length() != 0) {
  260. return true;
  261. }
  262. return false;
  263. }
  264.  
  265. private class sendMessageAsync extends AsyncTask<Void, Void, String>{
  266. String resultSet;
  267.  
  268. @Override
  269. protected void onPreExecute(){
  270. }
  271.  
  272. @Override
  273. protected String doInBackground(Void... arg0) {
  274. String usrname = editUserName.getText().toString();
  275. String usrPassword = editPassword.getText().toString();
  276. String number = sendSmsToNumber;
  277. String message = editText.getText().toString();
  278. String gateway_name = String.valueOf(spinner1.getSelectedItem());
  279. String gatewayToUse = gateway_name;
  280. Log.i("Gateway", String.valueOf(spinner1.getSelectedItem()));
  281. String msgreciever = number;
  282. String testMessage = message;
  283. try{
  284. SmsSender.sendMessage(msgreciever, testMessage, usrname,usrPassword, gatewayToUse);
  285. resultSet = SmsSender.toastText;
  286. timerDelayRemoveDialog(5000, pd);
  287.  
  288. } catch(Exception ex){
  289. Toast.makeText(MainActivity.this,"Error",Toast.LENGTH_SHORT).show();
  290. }
  291. return resultSet;
  292. }
  293.  
  294. @Override
  295. protected void onPostExecute(String result){
  296. //super.onPostExecute(result);
  297. pd.dismiss();
  298. Toast.makeText(MainActivity.this,resultSet,Toast.LENGTH_SHORT).show();
  299. }
  300.  
  301. }
  302.  
  303. public void timerDelayRemoveDialog(long time, final Dialog d){
  304. new Handler().postDelayed(new Runnable() {
  305. public void run() {
  306. sendMessageAsync sma = new sendMessageAsync();
  307. sma.cancel(true);
  308. d.dismiss();
  309. Toast.makeText(MainActivity.this,"Sending Failed. Using Backup Server. Please Wait..",Toast.LENGTH_SHORT).show();
  310. sendBackupMessageAsync sbma = new sendBackupMessageAsync();
  311. sbma.execute();
  312. }
  313. }, time);
  314. }
  315.  
  316. private class sendBackupMessageAsync extends AsyncTask<Void, Void, String>{
  317. String resultSet;
  318.  
  319. @Override
  320. protected void onPreExecute(){
  321. }
  322.  
  323. @Override
  324. protected String doInBackground(Void... arg0) {
  325. String usrname = editUserName.getText().toString();
  326. String usrPassword = editPassword.getText().toString();
  327. String number = sendSmsToNumber;
  328. String message = editText.getText().toString();
  329. String gateway_name = String.valueOf(spinner1.getSelectedItem());
  330. String gatewayToUse = gateway_name;
  331. Log.i("Gateway", String.valueOf(spinner1.getSelectedItem()));
  332. String msgreciever = number;
  333. String testMessage = message;
  334. try{
  335. BackupSender.sendMessage(msgreciever, testMessage, usrname,usrPassword, gatewayToUse);
  336. resultSet = BackupSender.toastText;
  337. } catch(Exception ex){
  338. Toast.makeText(MainActivity.this,"Error",Toast.LENGTH_SHORT).show();
  339. }
  340. return resultSet;
  341. }
  342.  
  343. @Override
  344. protected void onPostExecute(String result){
  345. //super.onPostExecute(result);
  346. pd.dismiss();
  347. Toast.makeText(MainActivity.this,resultSet,Toast.LENGTH_SHORT).show();
  348. }
  349.  
  350. }
  351.  
  352. public void onClick(View v) {
  353. if (v == btnsend){
  354. if (!isOnline()){
  355. Toast.makeText(MainActivity.this,"No Internet Access..Cannot Send SMS",Toast.LENGTH_SHORT).show();
  356. } else if (!isValid()){
  357. Toast.makeText(MainActivity.this,"All fields are required. Try Again.",Toast.LENGTH_SHORT).show();
  358. } else {
  359. save(v);
  360. pd.setCancelable(true);
  361. pd = ProgressDialog.show(MainActivity.this, "Free Sms","Sending SMS. Please Wait", true);
  362. sendMessageAsync sma = new sendMessageAsync();
  363. sma.execute();
  364. }
  365. }
  366. }
  367. }
  368.  
  369. protected void onPostExecute(Object result) {
  370. if (pd != null)
  371. pd.cancel();
  372.  
  373. if (result.equals("1")) {
  374.  
  375. Toast.makeText(getApplicationContext(),
  376. "The log file has been sent", Toast.LENGTH_LONG).show();
  377.  
  378. Intent j = new Intent(SendLogDialog.this, MyClass.class);
  379. startActivity(j);
  380. }
  381.  
  382. else if (result.equals("2")) {
  383.  
  384. new ErrorDialog(getApplicationContext(), "File doesn't exist",
  385. "The log file doesn't exist, can't send mail",
  386. "Show Settings", 1);
  387. }
  388.  
  389. else if (result.equals("3")) {
  390. new ErrorDialog(getApplicationContext(),
  391. "Error sending log file",
  392. "The log file could not be sent, please try again",
  393. "Ok", 5);
  394. }
  395.  
  396. }
Add Comment
Please, Sign In to add comment