From c99b843bc371b2788a49edefc1d1581221461b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrienberaud@gmail.com> Date: Thu, 25 Apr 2013 16:27:46 +1000 Subject: [PATCH] formating --- jni/openssl/apps/md4.c | 128 ++++++++- .../sflphone/client/CallActivity.java | 266 +++++++++--------- .../sflphone/client/CallElementView.java | 100 +++---- .../sflphone/client/SFLphoneApplication.java | 181 ++++++------ 4 files changed, 412 insertions(+), 263 deletions(-) mode change 120000 => 100644 jni/openssl/apps/md4.c diff --git a/jni/openssl/apps/md4.c b/jni/openssl/apps/md4.c deleted file mode 120000 index 7f457b2ab..000000000 --- a/jni/openssl/apps/md4.c +++ /dev/null @@ -1 +0,0 @@ -../crypto/md4/md4.c \ No newline at end of file diff --git a/jni/openssl/apps/md4.c b/jni/openssl/apps/md4.c new file mode 100644 index 000000000..141415ad4 --- /dev/null +++ b/jni/openssl/apps/md4.c @@ -0,0 +1,127 @@ +/* crypto/md4/md4.c */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#include <stdio.h> +#include <stdlib.h> +#include <openssl/md4.h> + +#define BUFSIZE 1024*16 + +void do_fp(FILE *f); +void pt(unsigned char *md); +#if !defined(_OSD_POSIX) && !defined(__DJGPP__) +int read(int, void *, unsigned int); +#endif + +int main(int argc, char **argv) + { + int i,err=0; + FILE *IN; + + if (argc == 1) + { + do_fp(stdin); + } + else + { + for (i=1; i<argc; i++) + { + IN=fopen(argv[i],"r"); + if (IN == NULL) + { + perror(argv[i]); + err++; + continue; + } + printf("MD4(%s)= ",argv[i]); + do_fp(IN); + fclose(IN); + } + } + exit(err); + } + +void do_fp(FILE *f) + { + MD4_CTX c; + unsigned char md[MD4_DIGEST_LENGTH]; + int fd; + int i; + static unsigned char buf[BUFSIZE]; + + fd=fileno(f); + MD4_Init(&c); + for (;;) + { + i=read(fd,buf,sizeof buf); + if (i <= 0) break; + MD4_Update(&c,buf,(unsigned long)i); + } + MD4_Final(&(md[0]),&c); + pt(md); + } + +void pt(unsigned char *md) + { + int i; + + for (i=0; i<MD4_DIGEST_LENGTH; i++) + printf("%02x",md[i]); + printf("\n"); + } + diff --git a/src/com/savoirfairelinux/sflphone/client/CallActivity.java b/src/com/savoirfairelinux/sflphone/client/CallActivity.java index 273ef5caa..f05bb9070 100644 --- a/src/com/savoirfairelinux/sflphone/client/CallActivity.java +++ b/src/com/savoirfairelinux/sflphone/client/CallActivity.java @@ -52,135 +52,141 @@ import com.savoirfairelinux.sflphone.service.CallManagerCallBack; import com.savoirfairelinux.sflphone.service.ISipService; import com.savoirfairelinux.sflphone.service.SipService; -public class CallActivity extends Activity implements OnClickListener +public class CallActivity extends Activity implements OnClickListener { - static final String TAG = "CallActivity"; - private ISipService service; - private SipCall mCall; - - private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String signalName = intent.getStringExtra(CallManagerCallBack.SIGNAL_NAME); - Log.d(TAG, "Signal received: " + signalName); - - if(signalName.equals(CallManagerCallBack.NEW_CALL_CREATED)) { - } else if(signalName.equals(CallManagerCallBack.CALL_STATE_CHANGED)) { - processCallStateChangedSignal(intent); - } else if(signalName.equals(CallManagerCallBack.INCOMING_CALL)) { - } - } - }; - - @Override - protected void onCreate(Bundle savedInstanceState) - { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_call_layout); - - Bundle b = getIntent().getExtras(); - // Parcelable value = b.getParcelable("CallInfo"); - SipCall.CallInfo info = b.getParcelable("CallInfo"); - Log.i(TAG, "Starting activity for call " + info.mCallID); - mCall = new SipCall(info); - - Intent intent = new Intent(this, SipService.class); - bindService(intent, mConnection, Context.BIND_AUTO_CREATE); - - findViewById(R.id.buttonanswer).setOnClickListener(this); - findViewById(R.id.buttonhangup).setOnClickListener(this); - findViewById(R.id.buttonhold).setOnClickListener(this); - findViewById(R.id.buttonunhold).setOnClickListener(this); - - setCallStateDisplay(mCall.getCallStateString()); - - LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("new-call-created")); - LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("call-state-changed")); - LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("incoming-call")); - } - - @Override - protected void onDestroy() { - Log.i(TAG, "Destroying Call Activity for call " + mCall.getCallId()); - LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver); - unbindService(mConnection); - super.onDestroy(); - } - - /** Defines callbacks for service binding, passed to bindService() */ - private ServiceConnection mConnection = new ServiceConnection() { - @Override - public void onServiceConnected(ComponentName className, IBinder binder) { - service = ISipService.Stub.asInterface(binder); - } - - @Override - public void onServiceDisconnected(ComponentName arg0) { - } - }; - - @Override - public void onClick(View view) - { - Log.i(TAG, "On click action"); - switch(view.getId()) { - case R.id.buttonanswer: - mCall.notifyServiceAnswer(service); - break; - case R.id.buttonhangup: - if(mCall.notifyServiceHangup(service)) - finish(); - break; - case R.id.buttonhold: - mCall.notifyServiceHold(service); - break; - case R.id.buttonunhold: - mCall.notifyServiceUnhold(service); - break; - default: - Log.e(TAG, "Invalid button clicked"); - } - } - - private void processCallStateChangedSignal(Intent intent) { - Bundle bundle = intent.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate"); - String callID = bundle.getString("CallID"); - String newState = bundle.getString("State"); - - if(newState.equals("INCOMING")) { - mCall.setCallState(SipCall.CALL_STATE_INCOMING); - setCallStateDisplay(newState); - } else if(newState.equals("RINGING")) { - mCall.setCallState(SipCall.CALL_STATE_RINGING); - setCallStateDisplay(newState); - } else if(newState.equals("CURRENT")) { - mCall.setCallState(SipCall.CALL_STATE_CURRENT); - setCallStateDisplay(newState); - } else if(newState.equals("HUNGUP")) { - mCall.setCallState(SipCall.CALL_STATE_HUNGUP); - setCallStateDisplay(newState); - finish(); - } else if(newState.equals("BUSY")) { - mCall.setCallState(SipCall.CALL_STATE_BUSY); - setCallStateDisplay(newState); - } else if(newState.equals("FAILURE")) { - mCall.setCallState(SipCall.CALL_STATE_FAILURE); - setCallStateDisplay(newState); - } else if(newState.equals("HOLD")) { - mCall.setCallState(SipCall.CALL_STATE_HOLD); - setCallStateDisplay(newState); - } else if(newState.equals("UNHOLD")) { - mCall.setCallState(SipCall.CALL_STATE_CURRENT); - setCallStateDisplay("CURRENT"); - } else { - mCall.setCallState(SipCall.CALL_STATE_NONE); - setCallStateDisplay(newState); - } - - } - - private void setCallStateDisplay(String newState) { - TextView textView = (TextView)findViewById(R.id.callstate); - textView.setText("Call State: " + newState); - } + static final String TAG = "CallActivity"; + private ISipService service; + private SipCall mCall; + + private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) + { + String signalName = intent.getStringExtra(CallManagerCallBack.SIGNAL_NAME); + Log.d(TAG, "Signal received: " + signalName); + + if (signalName.equals(CallManagerCallBack.NEW_CALL_CREATED)) { + } else if (signalName.equals(CallManagerCallBack.CALL_STATE_CHANGED)) { + processCallStateChangedSignal(intent); + } else if (signalName.equals(CallManagerCallBack.INCOMING_CALL)) { + } + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_call_layout); + + Bundle b = getIntent().getExtras(); + // Parcelable value = b.getParcelable("CallInfo"); + SipCall.CallInfo info = b.getParcelable("CallInfo"); + Log.i(TAG, "Starting activity for call " + info.mCallID); + mCall = new SipCall(info); + + Intent intent = new Intent(this, SipService.class); + bindService(intent, mConnection, Context.BIND_AUTO_CREATE); + + findViewById(R.id.buttonanswer).setOnClickListener(this); + findViewById(R.id.buttonhangup).setOnClickListener(this); + findViewById(R.id.buttonhold).setOnClickListener(this); + findViewById(R.id.buttonunhold).setOnClickListener(this); + + setCallStateDisplay(mCall.getCallStateString()); + + LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter(CallManagerCallBack.NEW_CALL_CREATED)); + LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter(CallManagerCallBack.CALL_STATE_CHANGED)); + LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter(CallManagerCallBack.INCOMING_CALL)); + } + + @Override + protected void onDestroy() + { + Log.i(TAG, "Destroying Call Activity for call " + mCall.getCallId()); + LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver); + unbindService(mConnection); + super.onDestroy(); + } + + /** Defines callbacks for service binding, passed to bindService() */ + private ServiceConnection mConnection = new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName className, IBinder binder) + { + service = ISipService.Stub.asInterface(binder); + } + + @Override + public void onServiceDisconnected(ComponentName arg0) + { + } + }; + + @Override + public void onClick(View view) + { + Log.i(TAG, "On click action"); + switch (view.getId()) { + case R.id.buttonanswer: + mCall.notifyServiceAnswer(service); + break; + case R.id.buttonhangup: + if (mCall.notifyServiceHangup(service)) + finish(); + break; + case R.id.buttonhold: + mCall.notifyServiceHold(service); + break; + case R.id.buttonunhold: + mCall.notifyServiceUnhold(service); + break; + default: + Log.e(TAG, "Invalid button clicked"); + } + } + + private void processCallStateChangedSignal(Intent intent) + { + Bundle bundle = intent.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate"); + String callID = bundle.getString("CallID"); + String newState = bundle.getString("State"); + + if (newState.equals("INCOMING")) { + mCall.setCallState(SipCall.CALL_STATE_INCOMING); + setCallStateDisplay(newState); + } else if (newState.equals("RINGING")) { + mCall.setCallState(SipCall.CALL_STATE_RINGING); + setCallStateDisplay(newState); + } else if (newState.equals("CURRENT")) { + mCall.setCallState(SipCall.CALL_STATE_CURRENT); + setCallStateDisplay(newState); + } else if (newState.equals("HUNGUP")) { + mCall.setCallState(SipCall.CALL_STATE_HUNGUP); + setCallStateDisplay(newState); + finish(); + } else if (newState.equals("BUSY")) { + mCall.setCallState(SipCall.CALL_STATE_BUSY); + setCallStateDisplay(newState); + } else if (newState.equals("FAILURE")) { + mCall.setCallState(SipCall.CALL_STATE_FAILURE); + setCallStateDisplay(newState); + } else if (newState.equals("HOLD")) { + mCall.setCallState(SipCall.CALL_STATE_HOLD); + setCallStateDisplay(newState); + } else if (newState.equals("UNHOLD")) { + mCall.setCallState(SipCall.CALL_STATE_CURRENT); + setCallStateDisplay("CURRENT"); + } else { + mCall.setCallState(SipCall.CALL_STATE_NONE); + setCallStateDisplay(newState); + } + + } + + private void setCallStateDisplay(String newState) + { + TextView textView = (TextView) findViewById(R.id.callstate); + textView.setText("Call State: " + newState); + } } diff --git a/src/com/savoirfairelinux/sflphone/client/CallElementView.java b/src/com/savoirfairelinux/sflphone/client/CallElementView.java index be580dee4..bb605c3c3 100644 --- a/src/com/savoirfairelinux/sflphone/client/CallElementView.java +++ b/src/com/savoirfairelinux/sflphone/client/CallElementView.java @@ -42,58 +42,64 @@ import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import android.widget.FrameLayout; -public class CallElementView extends FrameLayout { - private ViewGroup contactCard = null; - private ViewGroup callCard = null; +public class CallElementView extends FrameLayout +{ + private ViewGroup contactCard = null; + private ViewGroup callCard = null; - public CallElementView(Context context, AttributeSet attrs) { - super(context, attrs); - } + public CallElementView(Context context, AttributeSet attrs) + { + super(context, attrs); + } - public CallElementView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - } + public CallElementView(Context context, AttributeSet attrs, int defStyle) + { + super(context, attrs, defStyle); + } - @Override - protected void onAttachedToWindow() { - // Layouts may be inflated or we may use fragments. - // contactCard = (ViewGroup) findViewById(R.id.contactview); - // callCard = (ViewGroup) findViewById(R.id.callview); - // callCard.setVisibility(View.GONE); - } + @Override + protected void onAttachedToWindow() + { + // Layouts may be inflated or we may use fragments. + // contactCard = (ViewGroup) findViewById(R.id.contactview); + // callCard = (ViewGroup) findViewById(R.id.callview); + // callCard.setVisibility(View.GONE); + } - private Interpolator accelerator = new AccelerateInterpolator(); - private Interpolator decelerator = new DecelerateInterpolator(); + private Interpolator accelerator = new AccelerateInterpolator(); + private Interpolator decelerator = new DecelerateInterpolator(); - // from Android API Demo "ListFlipper" - private void flipit() { - if (contactCard == null || callCard == null) - return; + // from Android API Demo "ListFlipper" + private void flipit() + { + if (contactCard == null || callCard == null) + return; - final View visibleList; - final View invisibleList; - if (contactCard.getVisibility() == View.GONE) { - visibleList = callCard; - invisibleList = contactCard; - } else { - invisibleList = callCard; - visibleList = contactCard; - } - ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visibleList, "rotationY", 0f, 90f); - visToInvis.setDuration(500); - visToInvis.setInterpolator(accelerator); - final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisibleList, "rotationY", -90f, 0f); - invisToVis.setDuration(500); - invisToVis.setInterpolator(decelerator); - visToInvis.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator anim) { - visibleList.setVisibility(View.GONE); - invisToVis.start(); - invisibleList.setVisibility(View.VISIBLE); - } - }); - visToInvis.start(); - } + final View visibleList; + final View invisibleList; + if (contactCard.getVisibility() == View.GONE) { + visibleList = callCard; + invisibleList = contactCard; + } else { + invisibleList = callCard; + visibleList = contactCard; + } + ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visibleList, "rotationY", 0f, 90f); + visToInvis.setDuration(500); + visToInvis.setInterpolator(accelerator); + final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisibleList, "rotationY", -90f, 0f); + invisToVis.setDuration(500); + invisToVis.setInterpolator(decelerator); + visToInvis.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator anim) + { + visibleList.setVisibility(View.GONE); + invisToVis.start(); + invisibleList.setVisibility(View.VISIBLE); + } + }); + visToInvis.start(); + } } diff --git a/src/com/savoirfairelinux/sflphone/client/SFLphoneApplication.java b/src/com/savoirfairelinux/sflphone/client/SFLphoneApplication.java index 4fc442719..ca598684c 100644 --- a/src/com/savoirfairelinux/sflphone/client/SFLphoneApplication.java +++ b/src/com/savoirfairelinux/sflphone/client/SFLphoneApplication.java @@ -12,89 +12,100 @@ import com.savoirfairelinux.sflphone.client.receiver.AccountListReceiver; import com.savoirfairelinux.sflphone.service.ISipService; import com.savoirfairelinux.sflphone.service.SipService; -public class SFLphoneApplication extends Application { - - static final String TAG = "SFLphoneApplication"; - private boolean serviceRunning = false; - private ISipService sipService; - private AccountListReceiver accountList = new AccountListReceiver(); - - private void startSipService() { - Thread thread = new Thread("StartSFLphoneService") { - public void run() { - Log.i(TAG, "SipService launching thread"); - Intent sipServiceIntent = new Intent(SFLphoneApplication.this, SipService.class); - //sipServiceIntent.putExtra(ServiceConstants.EXTRA_OUTGOING_ACTIVITY, new ComponentName(SFLPhoneHome.this, SFLPhoneHome.class)); - startService(sipServiceIntent); - serviceRunning = true; - }; - }; - try { - thread.start(); - } catch (IllegalThreadStateException e) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setMessage("Cannot start SFLPhone SipService!"); - AlertDialog alert = builder.create(); - alert.show(); - //TODO exit application - } - } - - @Override - public void onCreate() { - super.onCreate(); - Log.i(TAG, "onCreate"); - - if (!serviceRunning) { - Log.i(TAG, "starting SipService"); - startSipService(); - } - } - - @Override - public void onTerminate() { - super.onTerminate(); - Log.i(TAG, "onTerminate"); - - if (serviceRunning) { - Log.i(TAG, "onDestroy: stopping SipService..."); - stopService(new Intent(this, SipService.class)); - serviceRunning = false; - } - } - - public boolean isServiceRunning() { - return serviceRunning; - } - - public void setServiceRunning(boolean r) { - this.serviceRunning = r; - } - - public ISipService getSipService() { - return sipService; - } - - public void setSipService(ISipService service) { - sipService = service; - } - - public AccountListReceiver getAccountList() { - return accountList; - } - - public String getAppPath() { - PackageManager pkgMng = getPackageManager(); - String pkgName = getPackageName(); - - try { - PackageInfo pkgInfo = pkgMng.getPackageInfo(pkgName, 0); - pkgName = pkgInfo.applicationInfo.dataDir; - } catch (NameNotFoundException e) { - Log.w(TAG, "Error Package name not found ", e); - } - - Log.d(TAG, "Application path: " + pkgName); - return pkgName; - } +public class SFLphoneApplication extends Application +{ + + static final String TAG = "SFLphoneApplication"; + private boolean serviceRunning = false; + private ISipService sipService; + private AccountListReceiver accountList = new AccountListReceiver(); + + private void startSipService() + { + Thread thread = new Thread("StartSFLphoneService") { + public void run() + { + Log.i(TAG, "SipService launching thread"); + Intent sipServiceIntent = new Intent(SFLphoneApplication.this, SipService.class); + //sipServiceIntent.putExtra(ServiceConstants.EXTRA_OUTGOING_ACTIVITY, new ComponentName(SFLPhoneHome.this, SFLPhoneHome.class)); + startService(sipServiceIntent); + serviceRunning = true; + }; + }; + try { + thread.start(); + } catch (IllegalThreadStateException e) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage("Cannot start SFLPhone SipService!"); + AlertDialog alert = builder.create(); + alert.show(); + //TODO exit application + } + } + + @Override + public void onCreate() + { + super.onCreate(); + Log.i(TAG, "onCreate"); + + if (!serviceRunning) { + Log.i(TAG, "starting SipService"); + startSipService(); + } + } + + @Override + public void onTerminate() + { + super.onTerminate(); + Log.i(TAG, "onTerminate"); + + if (serviceRunning) { + Log.i(TAG, "onDestroy: stopping SipService..."); + stopService(new Intent(this, SipService.class)); + serviceRunning = false; + } + } + + public boolean isServiceRunning() + { + return serviceRunning; + } + + public void setServiceRunning(boolean r) + { + this.serviceRunning = r; + } + + public ISipService getSipService() + { + return sipService; + } + + public void setSipService(ISipService service) + { + sipService = service; + } + + public AccountListReceiver getAccountList() + { + return accountList; + } + + public String getAppPath() + { + PackageManager pkgMng = getPackageManager(); + String pkgName = getPackageName(); + + try { + PackageInfo pkgInfo = pkgMng.getPackageInfo(pkgName, 0); + pkgName = pkgInfo.applicationInfo.dataDir; + } catch (NameNotFoundException e) { + Log.w(TAG, "Error Package name not found ", e); + } + + Log.d(TAG, "Application path: " + pkgName); + return pkgName; + } } -- GitLab