Guest User

Untitled

a guest
Dec 13th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.68 KB | None | 0 0
  1. package com.cglance.connection;
  2.  
  3.  
  4. import java.io.ByteArrayOutputStream;
  5. import java.text.SimpleDateFormat;
  6. import java.util.ArrayList;
  7. import java.util.Calendar;
  8. import java.util.Date;
  9.  
  10. import com.cglance.database.Database;
  11. import com.cglance.widget.QuickActionView;
  12.  
  13. import android.app.Activity;
  14. import android.content.ContentResolver;
  15. import android.content.Context;
  16. import android.content.DialogInterface;
  17. import android.content.Intent;
  18. import android.database.ContentObserver;
  19. import android.database.Cursor;
  20. import android.database.sqlite.SQLiteDatabase;
  21. import android.graphics.Bitmap;
  22. import android.graphics.BitmapFactory;
  23. import android.graphics.Canvas;
  24. import android.graphics.Color;
  25. import android.graphics.Matrix;
  26. import android.graphics.Point;
  27. import android.graphics.drawable.BitmapDrawable;
  28. import android.graphics.drawable.ColorDrawable;
  29. import android.graphics.drawable.Drawable;
  30.  
  31. import android.net.Uri;
  32. import android.opengl.Visibility;
  33. import android.os.Bundle;
  34. import android.os.Handler;
  35. import android.telephony.PhoneStateListener;
  36. import android.telephony.TelephonyManager;
  37. import android.ui.HorizontalListView;
  38. import android.util.Base64;
  39. import android.util.Log;
  40. import android.util.TypedValue;
  41. import android.view.GestureDetector;
  42. import android.view.GestureDetector.OnDoubleTapListener;
  43. import android.view.GestureDetector.SimpleOnGestureListener;
  44. import android.view.LayoutInflater;
  45. import android.view.Menu;
  46. import android.view.MotionEvent;
  47. import android.view.View;
  48. import android.view.View.OnTouchListener;
  49. import android.view.WindowManager;
  50. import android.view.View.OnClickListener;
  51. import android.view.View.OnLongClickListener;
  52. import android.view.ViewGroup;
  53. import android.widget.BaseAdapter;
  54. import android.widget.Button;
  55. import android.widget.ImageView;
  56. import android.widget.LinearLayout;
  57. import android.widget.ListView;
  58. import android.widget.Toast;
  59.  
  60.  
  61. public class CopyOfCustomGallary extends Activity implements OnClickListener,OnLongClickListener{
  62. Database db;
  63. Count allinfo;
  64. SQLiteDatabase database;
  65. public byte[] Imgid;
  66. public ArrayList<Bitmap> arrayList = new ArrayList<Bitmap>();
  67. public ArrayList<String> numberList = new ArrayList<String>();
  68. public ArrayList<String> emailList = new ArrayList<String>();
  69. public ArrayList<String> nameList = new ArrayList<String>();
  70. public ArrayList<String> popupnameList = new ArrayList<String>();
  71. public ArrayList<String> popupnumList = new ArrayList<String>();
  72. public ArrayList<String> popImageList = new ArrayList<String>();
  73. public ArrayList<String> imageList = new ArrayList<String>();
  74. public Bitmap imageBitmaps;
  75. public Bitmap[] bitmapArr=null;
  76. Button spotshild,userconnect,search;
  77. public boolean flag=false;
  78. public boolean flag_user=false;
  79. String day,phone_number,email_id;
  80. String[] days = new String[8];
  81. Button[] btn = new Button[8];
  82. String[] horiString = new String[8];
  83. HorizontalListView[] horiListview = new HorizontalListView[8];
  84. HorizontalAdapter adapter;
  85. CustomAdapter customAdapter;
  86. HorizontalListView test;
  87. public boolean fromappcall=false;
  88. public boolean fromappsms=false;
  89. public boolean fromappsmail=false;
  90. public boolean popupflag = false;
  91. public boolean flag_type = false;
  92. MyListAdapter listAdapter;
  93.  
  94. Button call,sms,mail; // bottom portion
  95. boolean SMS = false;
  96. boolean CALL = false;
  97. boolean EMAIL = false;
  98. public boolean listtime = false;
  99. String number = "";
  100. String email="";
  101. SimpleDateFormat sdfcur;
  102. Calendar calender;
  103. LinearLayout ll,search_linear;
  104. ListView lv;
  105. public String temp1,Imgid1;
  106. String select_number;
  107.  
  108.  
  109.  
  110. @Override
  111. public void onCreate(Bundle savedInstanceState) {
  112. super.onCreate(savedInstanceState);
  113. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  114. setContentView(R.layout.gallary_view_new);
  115.  
  116. //for counting message/call
  117. allinfo= new Count(CopyOfCustomGallary.this);
  118. allinfo.CountAll();
  119.  
  120. spotshild.setOnClickListener(this);
  121. userconnect.setOnClickListener(this);
  122. search.setOnClickListener(this);
  123.  
  124.  
  125. // search.setOnClickListener(this);
  126. /*call.setOnDragListener(myDragEventListener);
  127. sms.setOnDragListener(myDragEventListener);
  128. mail.setOnDragListener(myDragEventListener);*/
  129. call.setOnClickListener(this);
  130. sms.setOnClickListener(this);
  131. mail.setOnClickListener(this);
  132.  
  133. //for stopping sms
  134. Handler handle = new Handler(){};
  135. SMSObserver myObserver = new SMSObserver(handle);
  136. ContentResolver contentResolver = getApplicationContext().getContentResolver();
  137. contentResolver.registerContentObserver(Uri.parse("content://sms"),true, myObserver);
  138.  
  139. //for stopping call
  140. PhoneCallListener phoneListener = new PhoneCallListener();
  141. TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
  142. telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
  143.  
  144.  
  145. sdfcur = new SimpleDateFormat("yyyy-MM-dd");
  146. calender=Calendar.getInstance();
  147.  
  148. // for no image
  149. BitmapDrawable bmd1 = (BitmapDrawable) getResources().getDrawable(R.drawable.user_pic);
  150. Bitmap bm1 = bmd1.getBitmap();
  151. ByteArrayOutputStream stream1 = new ByteArrayOutputStream();
  152. bm1.compress(Bitmap.CompressFormat.JPEG, 100, stream1);
  153. byte[] bitmapdata1 = stream1.toByteArray();
  154. temp1 = Base64.encodeToString(bitmapdata1, 0);
  155.  
  156. for(int i=0;i<8;i++)
  157. {
  158. db= new Database(getApplicationContext());
  159. arrayList= new ArrayList<Bitmap>();
  160. numberList= new ArrayList<String>();
  161. popupnameList = new ArrayList<String>();
  162. popupnumList = new ArrayList<String>();
  163. imageList = new ArrayList<String>();
  164. boolean _image1=false;
  165. /* arrayList.clear();
  166. numberList.clear();*/
  167. //popupnameList.clear();
  168.  
  169. String finalDate= sdfcur.format(calender.getTime());
  170. System.out.println("final Date:"+finalDate);
  171.  
  172. //fetching image from database
  173. Cursor record=db.test(finalDate);
  174. if(record.getCount()!=0){
  175.  
  176. if(record.moveToFirst()){
  177. do{
  178. Imgid1=record.getString(record.getColumnIndex(Database.PHOTO));
  179. phone_number = record.getString(record.getColumnIndex(Database.CONTACT_NUMBER));
  180. email_id = record.getString(record.getColumnIndex(Database.EMAIL));
  181. String name=record.getString(record.getColumnIndex(Database.NAME));
  182. byte[] bArr=Base64.decode(Imgid1, Base64.DEFAULT);
  183. Bitmap bitmap=BitmapFactory.decodeByteArray(bArr, 0, bArr.length);
  184. //Bitmap b=Bitmap.createScaledBitmap(bitmap, 70, 50, false);
  185. imageList.add(Imgid1);
  186.  
  187. if(Imgid1.length()!=0){
  188. if(Imgid1.equals(temp1)){
  189. popupnameList.add(name);
  190. popupnumList.add(phone_number);
  191. if(!_image1){
  192. arrayList.add(bitmap);
  193. _image1=true;
  194. }
  195. popupflag=false;
  196.  
  197. }else{
  198. if(!popupflag){
  199. arrayList.add(bitmap);
  200. popupflag=true;
  201. }
  202. }
  203. numberList.add(phone_number);
  204.  
  205. }
  206.  
  207.  
  208. }while(record.moveToNext());
  209. System.out.println("no. of images:"+arrayList.size());
  210. System.out.println("no. of phone numbers:"+numberList.size());
  211. System.out.println("no. of popup namelist:"+popupnameList.size());
  212. System.out.println("no. of popup phone numbers:"+popupnumList.size());
  213.  
  214. adapter= new HorizontalAdapter(getApplicationContext(),arrayList,numberList,i,popupnameList,imageList,popupnumList);
  215. horiListview[i].setAdapter(adapter);
  216. adapter.notifyDataSetChanged();
  217.  
  218.  
  219.  
  220. }record.close();
  221.  
  222. }
  223.  
  224. calender.add(Calendar.DATE, 1);
  225. db.close();
  226. }
  227.  
  228.  
  229.  
  230. //calandar used to print days
  231. SimpleDateFormat sdf = new SimpleDateFormat("E");
  232. Date d = new Date();
  233. day = sdf.format(d);
  234.  
  235. Calendar cal = Calendar.getInstance();
  236. days[0] = "Today";
  237.  
  238. btn[0] = (Button) findViewById(R.id.btn_today);
  239. btn[0].setText(days[0]);
  240. btn[1] = (Button) findViewById(R.id.btn_day6);
  241. btn[2] = (Button) findViewById(R.id.btn_day5);
  242. btn[3] = (Button) findViewById(R.id.btn_day4);
  243. btn[4] = (Button) findViewById(R.id.btn_day3);
  244. btn[5] = (Button) findViewById(R.id.btn_day2);
  245. btn[6] = (Button) findViewById(R.id.btn_day1);
  246. btn[7] = (Button) findViewById(R.id.btn_later);
  247.  
  248. Log.d("tag", "Day0 : " + days[0]);
  249. for(int i = 1 ; i < days.length-1 ; i++ ){
  250.  
  251. cal.add(Calendar.DATE, 1);
  252. SimpleDateFormat sdf1 = new SimpleDateFormat("E");
  253. Date resultdate = new Date(cal.getTimeInMillis());
  254. Log.d("week","DAy "+ i + " : " + sdf1.format(resultdate));
  255. /*//Button btn[i] = (Button) findViewById(R.id.button[7-i]);*/
  256. btn[i].getId();
  257. btn[i].setTextColor(Color.BLACK);
  258. btn[i].setText(sdf1.format(resultdate));
  259. }
  260.  
  261. //for slider activity
  262. lv.setAdapter( new MyListAdapter(getApplicationContext()));
  263. btn[7].setOnClickListener(new View.OnClickListener() {
  264.  
  265. @Override
  266. public void onClick(View v) {
  267.  
  268. if(!listtime){
  269. ll.setVisibility(View.VISIBLE);
  270. lv.setVisibility(View.VISIBLE);
  271. listtime = true;
  272. }
  273. else{
  274. lv.setVisibility(View.GONE);
  275. ll.setVisibility(View.GONE);
  276. listtime = false;
  277. }
  278.  
  279. }
  280. });
  281.  
  282.  
  283. }
  284.  
  285. @Override
  286. public void onBackPressed() {
  287. finish();
  288. }
  289.  
  290.  
  291. @Override
  292. public void onContentChanged() {
  293. super.onContentChanged();
  294. spotshild=(Button)findViewById(R.id.btn_spotshild);
  295. userconnect=(Button)findViewById(R.id.btn_user_connect);
  296. search=(Button)findViewById(R.id.btn_search);
  297. horiListview[0] = (HorizontalListView) findViewById(R.id.listview_today);
  298. horiListview[1] = (HorizontalListView) findViewById(R.id.listview_day6);
  299. horiListview[2] = (HorizontalListView) findViewById(R.id.listview_day5);
  300. horiListview[3] = (HorizontalListView) findViewById(R.id.listview_day4);
  301. horiListview[4] = (HorizontalListView) findViewById(R.id.listview_day3);
  302. horiListview[5] = (HorizontalListView) findViewById(R.id.listview_day2);
  303. horiListview[6] = (HorizontalListView) findViewById(R.id.listview_day1);
  304. horiListview[7]= (HorizontalListView) findViewById(R.id.listview_later);
  305.  
  306. sms = (Button)findViewById(R.id.Btn_msg);//sms
  307. call = (Button)findViewById(R.id.Btn_call);//call
  308. mail = (Button)findViewById(R.id.Btn_mail);//mail
  309.  
  310. lv = (ListView) findViewById(R.id.listview1);
  311. ll = (LinearLayout) findViewById(R.id.linear10);
  312. search_linear = (LinearLayout) findViewById(R.id.linear_search);
  313.  
  314.  
  315. }
  316.  
  317. @Override
  318. public void onClick(View v) {
  319. switch (v.getId()) {
  320. case R.id.btn_spotshild:
  321. spotshild.setBackgroundResource(R.drawable.spot_shild);
  322. Intent i = new Intent(getApplicationContext(),CopyOfIntervalActivity.class);
  323. startActivity(i);
  324. overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
  325.  
  326. break;
  327. case R.id.btn_user_connect:
  328. if(!flag_user){
  329. sdfcur = new SimpleDateFormat("yyyy-MM-dd");
  330. calender=Calendar.getInstance();
  331. userconnect.setBackgroundResource(R.drawable.user_connect);
  332. getImageContactTypeWiseImageDisplay("social");
  333. flag_user=true;
  334. }else{
  335. userconnect.setBackgroundResource(R.drawable.user_connect_off);
  336. sdfcur = new SimpleDateFormat("yyyy-MM-dd");
  337. calender=Calendar.getInstance();
  338. getImageContactTypeWiseImageDisplay("business");
  339. flag_user=false;
  340. }
  341. break;
  342. case R.id.btn_search:
  343. /*if(!flag_user){
  344. search_linear.setVisibility(View.VISIBLE);
  345. flag_user=true;
  346. }else{
  347. search_linear.setVisibility(View.GONE);
  348. flag_user=false;
  349. }*/
  350. Intent search = new Intent(getApplicationContext(),CopyOfAddActivity.class);
  351. startActivity(search);
  352. overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
  353. break;
  354. case R.id.Btn_call:
  355. if(select_number!=null){
  356. fromappcall=true;
  357. Intent callintent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + select_number));
  358. startActivity(callintent);
  359. finish();
  360. }
  361. break;
  362. case R.id.Btn_msg:
  363. if(select_number!=null){
  364. if(!fromappsms){
  365. Intent msgcall = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + select_number));
  366. msgcall.putExtra("compose_mode", true);
  367. startActivity(msgcall);
  368. fromappsms=true;
  369. }
  370. }
  371. break;
  372.  
  373. case R.id.Btn_mail:
  374. if(select_number!=null){
  375. if(!fromappsmail){
  376. Cursor c=db.getFirstRecordContactTable(select_number);
  377. if(c.getCount()!=0){
  378. c.moveToFirst();
  379. email=c.getString(c.getColumnIndex(Database.EMAIL));
  380. System.out.println("asdasdasd"+c.getCount()+email);
  381. c.close();
  382. }
  383. db.close();
  384.  
  385. Intent emailintent = new Intent(getApplicationContext(),EmailActivity.class);
  386. emailintent.putExtra("email", email);
  387. startActivity(emailintent);
  388. fromappsmail=true;
  389. }
  390. }
  391. }
  392.  
  393. }
  394.  
  395.  
  396.  
  397.  
  398. private void getImageContactTypeWiseImageDisplay(String type) {
  399.  
  400. for(int i=0;i<8;i++)
  401. {
  402. arrayList= new ArrayList<Bitmap>();
  403. numberList= new ArrayList<String>();
  404. popupnameList = new ArrayList<String>();
  405. popupnumList = new ArrayList<String>();
  406. imageList = new ArrayList<String>();
  407. boolean _image2=false;
  408.  
  409. db=new Database(getApplicationContext());
  410. String finalDate= sdfcur.format(calender.getTime());
  411. System.out.println("final Date:"+finalDate);
  412.  
  413. //fetching image from database
  414. Cursor record=db.test1(finalDate,type);
  415. System.out.println("==================="+record.getCount());
  416. if(record.getCount()!=0){
  417. if(record.moveToFirst()){
  418. do{
  419. String Imgid1=record.getString(record.getColumnIndex(Database.PHOTO));
  420. phone_number = record.getString(record.getColumnIndex(Database.CONTACT_NUMBER));
  421. email_id = record.getString(record.getColumnIndex(Database.EMAIL));
  422. String name=record.getString(record.getColumnIndex(Database.NAME));
  423.  
  424. byte[] bArr=Base64.decode(Imgid1, Base64.DEFAULT);
  425. Bitmap bitmap=BitmapFactory.decodeByteArray(bArr, 0, bArr.length);
  426. //Bitmap b=Bitmap.createScaledBitmap(bitmap, 70, 50, false);
  427. imageList.add(Imgid1);
  428. System.out.println("image" + imageList.size());
  429.  
  430. if(Imgid1.length()!=0){
  431. if(Imgid1.equals(temp1)){
  432. popupnameList.add(name);
  433. popupnumList.add(phone_number);
  434. if(!_image2){
  435. arrayList.add(bitmap);
  436.  
  437. _image2=true;
  438. }
  439. flag_type=false;
  440.  
  441. }else{
  442. if(!flag_type){
  443. arrayList.add(bitmap);
  444. flag_type=true;
  445. }
  446. }
  447. //set image to araaylist<bitmap>
  448. numberList.add(phone_number);
  449.  
  450. }
  451.  
  452. }while(record.moveToNext());
  453. System.out.println("no. of images:"+arrayList.size());
  454. System.out.println("no. of phone numbers:"+numberList.size());
  455. System.out.println("no. of popup namelist:"+popupnameList.size());
  456. System.out.println("no. of popup phone numbers:"+popupnumList.size());
  457.  
  458. adapter= new HorizontalAdapter(getApplicationContext(),arrayList,numberList,i,popupnameList,imageList,popupnumList);
  459. horiListview[i].setAdapter(adapter);
  460. adapter.notifyDataSetChanged();
  461.  
  462. }record.close();
  463. /*System.out.println("in CustomGallary :"+i+":"+arrayList.size());
  464. adapter= new HorizontalAdapter(getApplicationContext(),arrayList,numberList,i,popupnameList,imageList);
  465. horiListview[i].setAdapter(adapter);*/
  466.  
  467. }
  468. calender.add(Calendar.DATE, 1);
  469. db.close();
  470.  
  471.  
  472. }
  473.  
  474. }
  475.  
  476.  
  477.  
  478.  
  479. ImageView.OnLongClickListener sourceButtonsLongClickListener = new ImageView.OnLongClickListener(){
  480.  
  481. @Override
  482. public boolean onLongClick(View v) {
  483.  
  484. number = v.getContentDescription().toString();
  485. Cursor c=db.getFirstRecordContactTable(number);
  486. if(c.getCount()!=0){
  487. c.moveToFirst();
  488. email=c.getString(c.getColumnIndex(Database.EMAIL));
  489. System.out.println("asdasdasd"+c.getCount()+email);
  490. c.close();
  491. }
  492. db.close();
  493.  
  494.  
  495. return true;
  496. }
  497. };
  498.  
  499.  
  500.  
  501.  
  502.  
  503. public class HorizontalAdapter extends BaseAdapter {
  504. public Activity activity;
  505. Context context;
  506. ArrayList<Bitmap> list = new ArrayList<Bitmap>();
  507. ArrayList<String> numList = new ArrayList<String>();
  508. ArrayList<String> nameList = new ArrayList<String>();
  509. ArrayList<String> _image = new ArrayList<String>();
  510. ArrayList<String> popNum = new ArrayList<String>();
  511.  
  512. int imagePosition;
  513. GestureDetector gestureDetector;
  514. String user_photo;
  515.  
  516.  
  517. public HorizontalAdapter(Context con, ArrayList<Bitmap> arrayList,ArrayList<String> numlist, int pos, ArrayList<String> NameList,ArrayList<String> _photo,ArrayList<String> popNumList){
  518. context=con;
  519. list=arrayList;
  520. numList=numlist;
  521. imagePosition=pos;
  522. nameList=NameList;
  523. _image=_photo;
  524. popNum=popNumList;
  525. gestureDetector = new GestureDetector(new MyGestureDetector(con));
  526. System.out.println("image:"+list.size());
  527. System.out.println("Number:"+numList.size());
  528. System.out.println("total record:"+_image.size());
  529.  
  530.  
  531. }
  532.  
  533. @Override
  534. public void notifyDataSetChanged() {
  535. // TODO Auto-generated method stub
  536. super.notifyDataSetChanged();
  537. }
  538.  
  539. @Override
  540. public int getCount() {
  541. // TODO Auto-generated method stub
  542.  
  543. return list.size();
  544. }
  545.  
  546. @Override
  547. public Object getItem(int position) {
  548. // TODO Auto-generated method stub
  549. return list.get(position);
  550. }
  551.  
  552. @Override
  553. public long getItemId(int position) {
  554. // TODO Auto-generated method stub
  555. return position;
  556. }
  557.  
  558. @Override
  559. public View getView(final int position, View convertView, ViewGroup parent) {
  560.  
  561. LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  562. View vi;
  563. if(convertView==null){
  564. vi = new View(context);
  565. vi = inflater.inflate(R.layout.hori_image, null);
  566. ImageView iv=(ImageView)vi.findViewById(R.id.image);
  567. iv.setImageBitmap(list.get(position));
  568. // iv.setOnLongClickListener(sourceButtonsLongClickListener);
  569. /* iv.setOnDragListener(myDragEventListener);*/
  570. iv.setContentDescription(numList.get(position));
  571. iv.setOnClickListener(new View.OnClickListener() {
  572. @Override
  573. public void onClick(View v)
  574. {
  575. System.out.println("in on click");
  576. String image=_image.get(position);
  577. if(temp1.equals(image))
  578. {
  579. System.out.println("image same");
  580. QuickActionView qa = QuickActionView.Builder( v );
  581.  
  582. // set the adapter
  583. customAdapter = new CustomAdapter(getApplicationContext() , nameList , popNum) ;
  584. qa.setAdapter( customAdapter );
  585. //customAdapter.notifyDataSetChanged();
  586.  
  587. // set the number of columns ( setting -1 for auto )
  588. qa.setNumColumns( (int) (2) );
  589. qa.setOnClickListener( new DialogInterface.OnClickListener() {
  590. @Override
  591. public void onClick( DialogInterface dialog, int which ) {
  592. dialog.dismiss();
  593. Toast.makeText( getBaseContext(), "Selected Name: " + nameList.get(which), Toast.LENGTH_SHORT ).show();
  594. select_number=popNum.get(which);
  595. System.out.println("name:"+nameList.get(which));
  596. System.out.println("number:"+numList.get(which));
  597. }
  598. } );
  599.  
  600. // finally show the view
  601. qa.show();
  602.  
  603. }
  604. Toast.makeText( getBaseContext(), "Selected Name: ", Toast.LENGTH_SHORT ).show();
  605. System.out.println("adasdsa"+numList.get(position));
  606. select_number=numList.get(position);
  607.  
  608.  
  609.  
  610.  
  611. }
  612. });
  613. // iv.setOnClickListener(CustomGallary.this);
  614. iv.setOnTouchListener(new OnTouchListener() {
  615. GestureDetector gestureDetector = new GestureDetector(new MyGestureDetector(context,numList.get(position)));
  616. @Override
  617. public boolean onTouch(View v, MotionEvent event) {
  618. return gestureDetector.onTouchEvent(event);
  619. }
  620. });
  621.  
  622. }else{
  623. vi = (View)convertView;
  624. }
  625.  
  626.  
  627.  
  628. return vi;
  629. }
  630.  
  631.  
  632. }
  633.  
  634. private class PhoneCallListener extends PhoneStateListener {
  635.  
  636. private boolean isPhoneCalling = false;
  637. String LOG_TAG = "LOGGING 123";
  638.  
  639. @Override
  640. public void onCallStateChanged(int state, String incomingNumber) {
  641. if(fromappcall){
  642.  
  643. if (TelephonyManager.CALL_STATE_RINGING == state) {
  644. Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);
  645. }
  646.  
  647. if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
  648. Log.i(LOG_TAG, "OFFHOOK");
  649. isPhoneCalling = true;
  650. }
  651.  
  652. if (TelephonyManager.CALL_STATE_IDLE == state) {
  653.  
  654. if (isPhoneCalling) {
  655. Intent i = getBaseContext().getPackageManager()
  656. .getLaunchIntentForPackage(
  657. getBaseContext().getPackageName());
  658. i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  659. startActivity(i);
  660. isPhoneCalling = false;
  661. fromappcall = false;
  662. }
  663.  
  664. }
  665. }
  666. }
  667. }
  668.  
  669. //sms observer class for observing sms
  670. private class SMSObserver extends ContentObserver{
  671.  
  672. String lastMessage = null;
  673. public SMSObserver(Handler handler) {
  674. super(handler);
  675. }
  676.  
  677. public void onChange(boolean selfChange) {
  678. super.onChange(selfChange);
  679. Uri uriSMSURI = Uri.parse("content://sms/");
  680. Cursor cur = getApplicationContext().getContentResolver().query(uriSMSURI, null, null,null, null);
  681. cur.moveToNext();
  682. String id = cur.getString(cur.getColumnIndex("thread_id"));
  683. String protocol = cur.getString(cur.getColumnIndex("protocol"));
  684. int type = cur.getInt(cur.getColumnIndex("type"));
  685. if(protocol==null && type==2 )
  686. {
  687. fromappsms=false;
  688.  
  689. }
  690. cur.close();
  691.  
  692. }
  693.  
  694. }
  695.  
  696.  
  697.  
  698.  
  699. @Override
  700. public boolean onLongClick(View v) {
  701. return false;
  702. }
  703. @Override
  704. protected void onDestroy() {
  705. super.onDestroy();
  706.  
  707. }
  708.  
  709. }
Add Comment
Please, Sign In to add comment