commit 0d424797a2ba3c4f5646a95ffc5af9bfb217886f
Author: Nathan Freitas <[email protected]>
Date:   Mon Aug 11 10:10:18 2014 -0400

    make expanded notif off by default; handle exceptions better
    - some devices seem to not like these new expanded/remoteviews 
notifications, so we are turning them off by default. This will also help with 
load issues on onionoo servers
---
 res/layout/layout_notification_expanded.xml        |   23 +-------
 res/values/strings.xml                             |    6 ++
 res/xml/preferences.xml                            |    7 +++
 src/org/torproject/android/service/TorService.java |   62 ++++++++++----------
 4 files changed, 46 insertions(+), 52 deletions(-)

diff --git a/res/layout/layout_notification_expanded.xml 
b/res/layout/layout_notification_expanded.xml
index c208583..c2a9c9e 100644
--- a/res/layout/layout_notification_expanded.xml
+++ b/res/layout/layout_notification_expanded.xml
@@ -55,20 +55,7 @@
                 android:textStyle="bold"
                                
android:textAppearance="@style/NotificationTitle"
                  />
-            <ViewStub android:id="@+id/time"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:visibility="gone"
-                android:layout="@layout/notification_template_part_time"
-                />
-            <ViewStub android:id="@+id/chronometer"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:visibility="gone"
-                android:layout="@layout/notification_template_part_chronometer"
-                />
+            
         </LinearLayout>
         <LinearLayout
             android:id="@+id/line3"
@@ -131,13 +118,5 @@
             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/res/values/strings.xml b/res/values/strings.xml
index 91264a8..155dbdd 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -227,9 +227,15 @@
   <string name="unable_to_start_tor">Unable to start Tor:</string>
   <string name="pref_use_sys_iptables_title">Use Default Iptables</string>
   <string name="pref_use_sys_iptables_summary">use the built-in iptables 
binary instead of the one bundled with Orbot</string>
+  
   <string name="error_installing_binares">The Tor binaries were not able to be 
installed or upgraded.</string>
+  
   <string name="pref_use_persistent_notifications">Always keep the icon in 
toolbar when Orbot is connected</string>
   <string name="pref_use_persistent_notifications_title">Always-On 
Notifications</string>
+  
+  <string name="pref_use_expanded_notifications">Show expanded notification 
with Tor exit country and IP</string>
+  <string name="pref_use_expanded_notifications_title">Expanded 
Notifications</string>
+  
   <string name="notification_using_bridges">Bridges enabled!</string>
   <string name="default_bridges"/>
   <string name="set_locale_title">Set Locale</string>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 22502b6..2b10ac4 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -23,6 +23,13 @@ android:summary="@string/pref_use_persistent_notifications"
 android:enabled="true" 
 android:title="@string/pref_use_persistent_notifications_title"/>
 
+<CheckBoxPreference
+android:defaultValue="false" 
+android:key="pref_expanded_notifications"
+android:summary="@string/pref_use_expanded_notifications"
+android:enabled="true" 
+android:title="@string/pref_use_expanded_notifications_title"/>
+
 
  <ListPreference android:title="@string/set_locale_title"
    android:key="pref_default_locale"
diff --git a/src/org/torproject/android/service/TorService.java 
b/src/org/torproject/android/service/TorService.java
index acdb134..c3b6b39 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -128,6 +128,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        private NotificationManager mNotificationManager = null;
        private Builder mNotifyBuilder;
        private Notification mNotification;
+       private boolean mShowExpandedNotifications = false;
 
     private boolean mHasRoot = false;
     private boolean mEnableTransparentProxy = false;
@@ -270,7 +271,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                
                mNotification = mNotifyBuilder.build();
                
-           if (Build.VERSION.SDK_INT >= 16) {
+           if (Build.VERSION.SDK_INT >= 16 && mShowExpandedNotifications) {
                
                
                // Create remote view that needs to be set as bigContentView 
for the notification.
@@ -317,8 +318,6 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        
                        expandedView.setTextViewText(R.id.title, 
getString(R.string.app_name)); 
                        
-               //      expandedView.setTextViewText(R.id.info, 
infoMessage.toString());
-               //      
expandedView.setOnClickPendingIntent(R.id._tor_notificationBT, pendIntent);
                        expandedView.setImageViewResource(R.id.icon, icon);
                mNotification.bigContentView = expandedView;
            }
@@ -723,6 +722,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                mEnableTransparentProxy = prefs.getBoolean("pref_transparent", 
false);
                mTransProxyAll = prefs.getBoolean("pref_transparent_all", 
false);
                mTransProxyTethering = 
prefs.getBoolean("pref_transparent_tethering", false);
+               mShowExpandedNotifications  = 
prefs.getBoolean("pref_expanded_notifications", false);
                
        ENABLE_DEBUG_LOG = prefs.getBoolean("pref_enable_logging",false);
        Log.i(TAG,"debug logging:" + ENABLE_DEBUG_LOG);
@@ -766,7 +766,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
      * 
      * the idea is that if Tor is off then transproxy is off
      */
-    protected boolean enableTransparentProxy (boolean proxyAll, boolean 
enableTether) throws Exception
+    private boolean enableTransparentProxy (boolean proxyAll, boolean 
enableTether) throws Exception
        {
        
                if (mTransProxy == null)
@@ -1124,7 +1124,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                {       
                        logNotice("unable to get control port; file not found");
                }
-               catch (IOException e)
+               catch (Exception e)
                {       
                        logNotice("unable to read control port config file");
                }
@@ -1170,7 +1170,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        }*/
        
        
-       public void addEventHandler () throws IOException
+       public void addEventHandler () throws Exception
        {
               // We extend NullEventHandler so that we don't need to provide 
empty
               // implementations for all the events we don't care about.
@@ -1386,31 +1386,33 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                        
                        logNotice(sb.toString());
                
-                       //get IP from last nodename
-                       if(status.equals("BUILT")){
-                               
-                               if (node.ipAddress == null)
-                                       mExecutor.execute(new 
ExternalIPFetcher(node));
-                               
-                               hmBuiltNodes.put(node.id, node);
-                       }
-                       
-                       if (status.equals("CLOSED"))
+                       if (mShowExpandedNotifications)
                        {
-                               hmBuiltNodes.remove(node.id);
-                               
-                               //how check the IP's of any other nodes we have
-                               for (String nodeId : hmBuiltNodes.keySet())
-                               {
-                                       node = hmBuiltNodes.get(nodeId);
+                               //get IP from last nodename
+                               if(status.equals("BUILT")){
                                        
                                        if (node.ipAddress == null)
                                                mExecutor.execute(new 
ExternalIPFetcher(node));
-
+                                       
+                                       hmBuiltNodes.put(node.id, node);
                                }
-
-                       }
                                
+                               if (status.equals("CLOSED"))
+                               {
+                                       hmBuiltNodes.remove(node.id);
+                                       
+                                       //how check the IP's of any other nodes 
we have
+                                       for (String nodeId : 
hmBuiltNodes.keySet())
+                                       {
+                                               node = hmBuiltNodes.get(nodeId);
+                                               
+                                               if (node.ipAddress == null)
+                                                       mExecutor.execute(new 
ExternalIPFetcher(node));
+       
+                                       }
+       
+                               }
+                       }
        
        }
        
@@ -1585,9 +1587,9 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                        
                        }
                }
-               catch(IOException ioe)
+               catch(Exception ioe)
                {
-                       Log.e(TAG,"Unable to get Tor information",ioe);
+               //      Log.e(TAG,"Unable to get Tor information",ioe);
                        logNotice("Unable to get Tor 
information"+ioe.getMessage());
                }
                        return null;
@@ -1621,7 +1623,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                return result.toString();
                        }
                }
-               catch (IOException ioe)
+               catch (Exception ioe)
                {
                        
                        logException("Unable to get Tor configuration: " + 
ioe.getMessage(),ioe);
@@ -1678,7 +1680,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
                                        //checkAddressAndCountry();
                                        
                                        }
-                                       catch (IOException ioe){
+                                       catch (Exception ioe){
                                                debug("error requesting newnym: 
" + ioe.getLocalizedMessage());
                                        }
                                }
@@ -1855,7 +1857,7 @@ public class TorService extends Service implements 
TorServiceConstants, TorConst
        }
     };
 
-    private boolean processSettingsImpl () throws RemoteException, IOException
+    private boolean processSettingsImpl () throws Exception
     {
        logNotice(getString(R.string.updating_settings_in_tor_service));
        



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

Reply via email to