commit f2f076c29c379c3288aacf403189fb945b0463b7
Author: Nathan Freitas <[email protected]>
Date:   Thu Jul 10 12:34:31 2014 -0400

    fixes for layout and notification data
    be sure to only get the IP of the last hop (that is the exit)
---
 res/layout/layout_notification_expanded.xml        |   63 ++++++-----
 src/org/torproject/android/service/TorService.java |  117 ++++++++------------
 2 files changed, 79 insertions(+), 101 deletions(-)

diff --git a/res/layout/layout_notification_expanded.xml 
b/res/layout/layout_notification_expanded.xml
index c038cc8..b61d6fe 100644
--- a/res/layout/layout_notification_expanded.xml
+++ b/res/layout/layout_notification_expanded.xml
@@ -18,9 +18,7 @@
     xmlns:internal="http://schemas.android.com/apk/prv/res/android";
     android:id="@+id/status_bar_latest_event_content"
     android:layout_width="match_parent"
-    android:layout_height="128dp"
-    internal:layout_minHeight="128dp"
-    internal:layout_maxHeight="128dp"
+    android:layout_height="wrap_content"    
     >
     <ImageView android:id="@+id/icon"
         android:layout_width="@dimen/notification_large_icon_width"
@@ -54,7 +52,9 @@
                 android:ellipsize="marquee"
                 android:fadingEdge="horizontal"
                 android:layout_weight="1"
-                />
+                android:textStyle="bold"
+                               
android:textAppearance="@style/NotificationTitle"
+                 />
             <ViewStub android:id="@+id/time"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -70,32 +70,12 @@
                 android:layout="@layout/notification_template_part_chronometer"
                 />
         </LinearLayout>
-        <TextView android:id="@+id/text2"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="-2dp"
-            android:layout_marginBottom="-2dp"
-            android:layout_marginStart="8dp"
-            android:singleLine="true"
-            android:fadingEdge="horizontal"
-            android:ellipsize="marquee"
-            android:visibility="gone"
-            />
-        <ProgressBar
-            android:id="@android:id/progress"
-            android:layout_width="match_parent"
-            android:layout_height="12dp"
-            android:layout_marginStart="8dp"
-            android:visibility="gone"
-            style="?android:attr/progressBarStyleHorizontal"
-            />
         <LinearLayout
             android:id="@+id/line3"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center_vertical"
-            android:layout_marginStart="8dp"
+            android:orientation="horizontal"       
+            android:layout_marginStart="8dp"                
             >
             <TextView android:id="@+id/text"
                 android:layout_width="0dp"
@@ -105,6 +85,7 @@
                 android:singleLine="true"
                 android:ellipsize="marquee"
                 android:fadingEdge="horizontal"
+                               
android:textAppearance="@style/NotificationText"                
                 />
             <TextView android:id="@+id/info"
                 android:layout_width="wrap_content"
@@ -114,6 +95,7 @@
                 android:singleLine="true"
                 android:gravity="center"
                 android:paddingStart="8dp"
+                               android:textAppearance="@style/NotificationText"
                 />
             <ImageView android:id="@+id/right_icon"
                 android:layout_width="16dp"
@@ -124,13 +106,30 @@
                 android:scaleType="centerInside"
                 android:visibility="gone"
                 />
-            <Button
+            <!-- 
+            <ImageButton
                    android:id="@+id/_tor_notificationBT"
-                   android:layout_width="wrap_content"
-                   android:layout_height="wrap_content"
-                   android:layout_alignParentRight="true"
-                   android:layout_below="@+id/tv"
-                   android:text="test2" />
+                   android:layout_width="24dp"
+                   android:layout_height="24dp"                   
+                   android:src="@drawable/nav_refresh" />
+                    -->
         </LinearLayout>
+        
+        <TextView android:id="@+id/text2"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="-2dp"
+            android:layout_marginBottom="-2dp"
+            android:layout_marginStart="8dp"            
+            android:fadingEdge="horizontal"        
+            />
+        <ProgressBar
+            android:id="@android:id/progress"
+            android:layout_width="match_parent"
+            android:layout_height="12dp"
+            android:layout_marginStart="8dp"
+            android:visibility="gone"
+            style="?android:attr/progressBarStyleHorizontal"
+            />
     </LinearLayout>
 </FrameLayout>
diff --git a/src/org/torproject/android/service/TorService.java 
b/src/org/torproject/android/service/TorService.java
index 9ed28b9..baaa0a2 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -23,15 +23,14 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.StringTokenizer;
-import java.util.Timer;
-import java.util.TimerTask;
+import java.util.concurrent.TimeoutException;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.util.concurrent.TimeoutException;
 
 import net.freehaven.tor.control.ConfigEntry;
 import net.freehaven.tor.control.EventHandler;
 import net.freehaven.tor.control.TorControlConnection;
+import net.freehaven.tor.control.TorControlError;
 
 import org.sufficientlysecure.rootcommands.Shell;
 import org.sufficientlysecure.rootcommands.command.SimpleCommand;
@@ -58,16 +57,13 @@ import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.os.AsyncTask;
 import android.os.Environment;
-import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
 import android.support.v4.app.NotificationCompat;
 import android.support.v4.app.NotificationCompat.Builder;
-import android.support.v4.content.LocalBroadcastManager;
 import android.util.Log;
 import android.widget.RemoteViews;
-import android.widget.Toast;
 
 public class TorService extends Service implements TorServiceConstants, 
TorConstants, EventHandler
 {
@@ -219,7 +215,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        }
                
        @SuppressLint("NewApi")
-       private void showToolbarNotification (String notifyMsg, int notifyId, 
int icon, boolean isOngoing)
+       private void showToolbarNotification (String notifyMsg, int notifyType, 
int icon)
        {           
                
                //Reusable code.
@@ -230,10 +226,14 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                RemoteViews expandedView = new 
RemoteViews(this.getPackageName(), 
                        R.layout.layout_notification_expanded);
                
-               expandedView.setTextViewText(R.id.text, notifyMsg);
-               expandedView.setTextViewText(R.id.title, 
getString(R.string.app_name)+ ' ' + exitIP);           
-               //expandedView.setTextViewText(R.id.exitIP, exitIP);
-               
//expandedView.setOnClickPendingIntent(R.id._tor_notificationBT, pendIntent);
+               if (notifyType == NOTIFY_ID)
+                       expandedView.setTextViewText(R.id.text, notifyMsg);
+               else
+                       expandedView.setTextViewText(R.id.text2, notifyMsg);
+               
+               expandedView.setTextViewText(R.id.title, 
getString(R.string.app_name));                 
+               expandedView.setTextViewText(R.id.info, "Tor IP: " + exitIP);
+       //      expandedView.setOnClickPendingIntent(R.id._tor_notificationBT, 
pendIntent);
                expandedView.setImageViewResource(R.id.icon, icon);
                
                if (mNotifyBuilder == null)
@@ -245,7 +245,6 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        {
                                mNotifyBuilder = new 
NotificationCompat.Builder(this)
                                        
.setContentTitle(getString(R.string.app_name))
-                                       .setContentText( 
getString(R.string.status_activated))
                                        .setSmallIcon(R.drawable.ic_stat_tor);
 
                                mNotifyBuilder.setContentIntent(pendIntent);
@@ -256,31 +255,24 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                mNotifyBuilder.setContentText(notifyMsg);
                mNotifyBuilder.setSmallIcon(icon);
                
-               
-               if (notifyId == ERROR_NOTIFY_ID)
+               if (notifyType != NOTIFY_ID)
                {
                        mNotifyBuilder.setTicker(notifyMsg);
                        mNotifyBuilder.setLights(Color.RED, 1000, 1000);
                        
mNotifyBuilder.setSmallIcon(R.drawable.ic_stat_notifyerr);
                }
-               else
-               {
-                       mNotifyBuilder.setTicker(null); //make sure to clear 
ticker
-               }
+               
+               mNotifyBuilder.setOngoing(prefPersistNotifications);
                
                mNotification = mNotifyBuilder.build();
                mNotification.bigContentView = expandedView;
                
-               if (isOngoing)
+               if (mNotification == null && prefPersistNotifications)          
                {
-                       startForeground(notifyId, mNotification);
-               
+                       startForeground(NOTIFY_ID, mNotification);              
                }
-               else
-               {
-                       mNotificationManager.notify(notifyId, mNotification);
-               }       
-               
+                               
+               mNotificationManager.notify(NOTIFY_ID, mNotification);
        }
     
 
@@ -435,13 +427,13 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                                
                                        } catch (FileNotFoundException e) {
                                                logException("unable to read 
onion hostname file",e);
-                                               
showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), 
HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr, false);
+                                               
showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), 
HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr);
                                                return null;
                                        }
                        }
                        else
                        {
-                                       
showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), 
HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr, false);
+                                       
showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), 
HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr);
                                        return null;
                                
                        }
@@ -451,7 +443,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                {
                        String onionHostname = result.toString();
                        
-                       
showToolbarNotification(getString(R.string.hidden_service_on) + ' ' + 
onionHostname, HS_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                       
showToolbarNotification(getString(R.string.hidden_service_on) + ' ' + 
onionHostname, HS_NOTIFY_ID, R.drawable.ic_stat_tor);
                                Editor pEdit = prefs.edit();
                                
pEdit.putString("pref_hs_hostname",onionHostname);
                                pEdit.commit();
@@ -719,13 +711,13 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                
                if(proxyAll)
                {
-                       
showToolbarNotification(getString(R.string.setting_up_full_transparent_proxying_),
 TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                       
showToolbarNotification(getString(R.string.setting_up_full_transparent_proxying_),
 TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
 
                        code = mTransProxy.setTransparentProxyingAll(this);
                }
                else
                {
-                       
showToolbarNotification(getString(R.string.setting_up_app_based_transparent_proxying_),
 TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                       
showToolbarNotification(getString(R.string.setting_up_app_based_transparent_proxying_),
 TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
 
                        code = 
mTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this, 
TorServiceUtils.getSharedPrefs(getApplicationContext())));
                }
@@ -735,11 +727,11 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                
                if (code == 0)
                {
-                       
showToolbarNotification(getString(R.string.transparent_proxying_enabled), 
TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                       
showToolbarNotification(getString(R.string.transparent_proxying_enabled), 
TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
 
                        if (enableTether)
                        {
-                               
showToolbarNotification(getString(R.string.transproxy_enabled_for_tethering_), 
TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                               
showToolbarNotification(getString(R.string.transproxy_enabled_for_tethering_), 
TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
 
                                mTransProxy.enableTetheringRules(this);
                                  
@@ -747,7 +739,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                }
                else
                {
-                       
showToolbarNotification(getString(R.string.warning_error_starting_transparent_proxying_),
 TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                       
showToolbarNotification(getString(R.string.warning_error_starting_transparent_proxying_),
 TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
 
                }
        
@@ -1168,7 +1160,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                 stopTor();
                                logException("Unable to start Tor: " + 
e.toString(),e); 
                                 currentStatus = STATUS_OFF;
-                                
showToolbarNotification(getString(R.string.unable_to_start_tor) + ": " + 
e.getMessage(), ERROR_NOTIFY_ID, R.drawable.ic_stat_notifyerr, false);
+                                
showToolbarNotification(getString(R.string.unable_to_start_tor) + ": " + 
e.getMessage(), ERROR_NOTIFY_ID, R.drawable.ic_stat_notifyerr);
                             }
                }
                else
@@ -1191,7 +1183,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
           {
                  currentStatus = STATUS_ON;
 
-                 showToolbarNotification(getString(R.string.status_activated), 
NOTIFY_ID, R.drawable.ic_stat_tor, prefPersistNotifications);
+                 showToolbarNotification(getString(R.string.status_activated), 
NOTIFY_ID, R.drawable.ic_stat_tor);
           }
         
        
@@ -1261,7 +1253,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                iconId = R.drawable.ic_stat_tor_xfer;
                        
                        if (mConnectivity && prefPersistNotifications)
-                         showToolbarNotification(sb.toString(), NOTIFY_ID, 
iconId, prefPersistNotifications);
+                         showToolbarNotification(sb.toString(), NOTIFY_ID, 
iconId);
 
                        mTotalTrafficWritten += written;
                        mTotalTrafficRead += read;
@@ -1321,8 +1313,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        
        public void circuitStatus(String status, String circID, String path) {
                
-               if (status.equals("BUILT") || status.equals("CLOSED"))
-               {
+               
                        StringBuilder sb = new StringBuilder();
                        sb.append("Circuit (");
                        sb.append((circID));
@@ -1332,41 +1323,25 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        
                        StringTokenizer st = new StringTokenizer(path,",");
                        String node = null;
+                       String nodeName = null;
                        
                        while (st.hasMoreTokens())
                        {
                                node = st.nextToken();
-                               final String nodeName = parseNodeName(node);
+                               nodeName = parseNodeName(node);
                                sb.append(nodeName);
                                
-                               if(status.equals("BUILT") && 
currentStatus==STATUS_ON){
-                                       new getExternalIP().execute(nodeName);
-                               }
-                                       
                                if (st.hasMoreTokens())
                                        sb.append (" > ");
                        }
                        
                        logNotice(sb.toString());
-               }
-               
-               /**
-               if (currentStatus != STATUS_ON)
-               {
-                       try {
-                               String state;
                
-                               state = conn.getInfo("dormant");
-                       
-                               if (state != null && Integer.parseInt(state) == 
0)
-                                       currentStatus = STATUS_ON;
-                               else
-                                       currentStatus = STATUS_CONNECTING;
-                               
-                       } catch (IOException e) {
-                               logException("Error getting state from Tor 
control port",e);
+                       //get IP from last nodename
+                       if(status.equals("BUILT") && currentStatus==STATUS_ON){
+                               new getExternalIP().execute(nodeName);
                        }
-               }*/
+                               
        
        }
        
@@ -1386,7 +1361,8 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
 
                        }
                                return nodeDetails;
-                               
+                       } catch (TorControlError e) {
+                               Log.d(TorService.TAG,"Error getting node 
details for: " + params[0]);                   
                        } catch (Exception e) {
                                Log.e(TorService.TAG,"Error getting node 
details",e);
                        }
@@ -1402,6 +1378,9 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                Pattern pattern = 
Pattern.compile(IPADDRESS_PATTERN);
                                Matcher matcher = null;
                                if(result!=null){
+                                       
+                                       sendCallbackLogMessage("Node Info: " + 
result); 
+
                                        matcher = pattern.matcher(result);
                                        if (matcher.find()) {
                                                exitIP = matcher.group();
@@ -1837,13 +1816,13 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                                if (!mConnectivity)
                                                {
                                                        
logNotice(context.getString(R.string.no_network_connectivity_putting_tor_to_sleep_));
-                                                       
showToolbarNotification(getString(R.string.no_internet_connection_tor),NOTIFY_ID,R.drawable.ic_stat_tor_off,prefPersistNotifications);
+                                                       
showToolbarNotification(getString(R.string.no_internet_connection_tor),NOTIFY_ID,R.drawable.ic_stat_tor_off);
                                                        
                                                }
                                                else
                                                {
                                                        
logNotice(context.getString(R.string.network_connectivity_is_good_waking_tor_up_));
-                                                       
showToolbarNotification(getString(R.string.status_activated),NOTIFY_ID,R.drawable.ic_stat_tor,prefPersistNotifications);
+                                                       
showToolbarNotification(getString(R.string.status_activated),NOTIFY_ID,R.drawable.ic_stat_tor);
 
                                                        if (mHasRoot && 
mEnableTransparentProxy)
                                                                
enableTransparentProxy(mTransProxyAll, mTransProxyTethering);
@@ -1940,7 +1919,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                }
                catch (Exception e)
                {
-                 showToolbarNotification 
(getString(R.string.error_installing_binares),ERROR_NOTIFY_ID,R.drawable.ic_stat_notifyerr,
 false);
+                 showToolbarNotification 
(getString(R.string.error_installing_binares),ERROR_NOTIFY_ID,R.drawable.ic_stat_notifyerr);
 
                        return false;
                }
@@ -1963,7 +1942,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        {
                                String msgBridge = 
getString(R.string.bridge_requires_ip) +
                                                
getString(R.string.send_email_for_bridges);
-                               showToolbarNotification(msgBridge, 
ERROR_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                               showToolbarNotification(msgBridge, 
ERROR_NOTIFY_ID, R.drawable.ic_stat_tor);
                                logMessage(msgBridge);
                        
                                return false;
@@ -1977,7 +1956,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                bridgeDelim = ",";
                        }
                        
-                       
showToolbarNotification(getString(R.string.notification_using_bridges) + ": " + 
bridgeList, TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor, false);
+                       
showToolbarNotification(getString(R.string.notification_using_bridges) + ": " + 
bridgeList, TRANSPROXY_NOTIFY_ID, R.drawable.ic_stat_tor);
   
                        StringTokenizer st = new 
StringTokenizer(bridgeList,bridgeDelim);
                        while (st.hasMoreTokens())
@@ -2036,7 +2015,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
         }
         catch (Exception e)
         {
-         showToolbarNotification 
(getString(R.string.your_reachableaddresses_settings_caused_an_exception_),ERROR_NOTIFY_ID,R.drawable.ic_stat_notifyerr,
 false);
+         showToolbarNotification 
(getString(R.string.your_reachableaddresses_settings_caused_an_exception_),ERROR_NOTIFY_ID,R.drawable.ic_stat_notifyerr);
 
            return false;
         }
@@ -2065,7 +2044,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
         }
         catch (Exception e)
         {
-                 showToolbarNotification 
(getString(R.string.your_relay_settings_caused_an_exception_),ERROR_NOTIFY_ID,R.drawable.ic_stat_notifyerr,
 false);
+                 showToolbarNotification 
(getString(R.string.your_relay_settings_caused_an_exception_),ERROR_NOTIFY_ID,R.drawable.ic_stat_notifyerr);
 
           
             return false;



_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to