[tor-commits] [orbot/master] enable snowflake mode for orbotTV

n8fr8 at torproject.org n8fr8 at torproject.org
Wed Dec 22 21:55:09 UTC 2021


commit 7023cd27e8aaffa3ac36f989ce9bd3b79e1aca50
Author: n8fr8 <nathan at guardianproject.info>
Date:   Tue Jul 13 12:28:01 2021 -0400

    enable snowflake mode for orbotTV
---
 app-tv/build.gradle                                |  3 ++
 .../torproject/android/tv/TeeveeMainActivity.java  | 50 ++++++++++++++++++++++
 app-tv/src/main/res/layout/layout_main.xml         | 27 +++++++++++-
 app-tv/src/main/res/values/strings.xml             |  1 +
 4 files changed, 79 insertions(+), 2 deletions(-)

diff --git a/app-tv/build.gradle b/app-tv/build.gradle
index b7121d8b..6d3250b5 100644
--- a/app-tv/build.gradle
+++ b/app-tv/build.gradle
@@ -137,6 +137,9 @@ dependencies {
     // leanback-tab is an add-on that provides customized TabLayout to be used as the top navigation bar.
     implementation "androidx.leanback:leanback-tab:1.1.0-beta01"
 
+    //add snowflake fun
+    implementation 'com.github.jetradarmobile:android-snowfall:1.2.1'
+
 }
 
 // Map for the version code that gives each ABI a value.
diff --git a/app-tv/src/main/java/org/torproject/android/tv/TeeveeMainActivity.java b/app-tv/src/main/java/org/torproject/android/tv/TeeveeMainActivity.java
index 0c0b2d5c..ef76c824 100644
--- a/app-tv/src/main/java/org/torproject/android/tv/TeeveeMainActivity.java
+++ b/app-tv/src/main/java/org/torproject/android/tv/TeeveeMainActivity.java
@@ -48,6 +48,7 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.google.zxing.integration.android.IntentIntegrator;
 import com.google.zxing.integration.android.IntentResult;
+import com.jetradarmobile.snowfall.SnowfallView;
 
 import net.freehaven.tor.control.TorControlCommands;
 import org.json.JSONArray;
@@ -98,6 +99,7 @@ public class TeeveeMainActivity extends Activity implements OrbotConstants, OnLo
     private TextView uploadText = null;
     private TextView mTxtOrbotLog = null;
     private Switch mBtnVPN = null;
+    private Switch mBtnSnowflake = null;
     /* Some tracking bits */
     private String torStatus = null; //latest status reported from the tor service
     private Intent lastStatusIntent;  // the last ACTION_STATUS Intent received
@@ -326,6 +328,9 @@ public class TeeveeMainActivity extends Activity implements OrbotConstants, OnLo
         Intent intent = new Intent(TeeveeMainActivity.this, OrbotService.class);
         stopService(intent);
 
+        SnowfallView sv = findViewById(R.id.snowflake_view);
+        sv.setVisibility(View.GONE);
+        sv.stopFalling();
     }
 
     private void doLayout() {
@@ -379,6 +384,33 @@ public class TeeveeMainActivity extends Activity implements OrbotConstants, OnLo
             }
         });
 
+        mBtnSnowflake = findViewById(R.id.btnSnowflake);
+        mBtnSnowflake.setFocusable(true);
+        mBtnSnowflake.setFocusableInTouchMode(true);
+
+        mBtnSnowflake.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+            @Override
+            public void onFocusChange(View v, boolean hasFocus) {
+
+                if (hasFocus)
+                    v.setBackgroundColor(getColor(R.color.dark_purple));
+                else
+                {
+                    v.setBackgroundColor(getColor(R.color.med_gray));
+                }
+            }
+        });
+
+
+        boolean beASnowflake = Prefs.beSnowflakeProxy();
+        mBtnSnowflake.setChecked(beASnowflake);
+
+        mBtnSnowflake.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+               Prefs.setBeSnowflakeProxy(isChecked);
+            }
+        });
 
         rv = findViewById(R.id.rv);
         LinearLayoutManager llm = new LinearLayoutManager(this);
@@ -791,6 +823,24 @@ public class TeeveeMainActivity extends Activity implements OrbotConstants, OnLo
                 Log.d(TAG, "autoStartFromIntent finish");
             }
 
+            if (Prefs.beSnowflakeProxy())
+            {
+
+
+                SnowfallView sv = findViewById(R.id.snowflake_view);
+                sv.setVisibility(View.VISIBLE);
+                sv.restartFalling();
+
+            }
+            else
+            {
+                SnowfallView sv = findViewById(R.id.snowflake_view);
+                sv.setVisibility(View.GONE);
+                sv.stopFalling();
+
+
+            }
+
 
         } else if (torStatus == TorServiceConstants.STATUS_STARTING) {
 
diff --git a/app-tv/src/main/res/layout/layout_main.xml b/app-tv/src/main/res/layout/layout_main.xml
index a6bdd5f2..e4e07441 100644
--- a/app-tv/src/main/res/layout/layout_main.xml
+++ b/app-tv/src/main/res/layout/layout_main.xml
@@ -5,12 +5,23 @@
 	android:orientation="vertical"
 	android:layout_width="match_parent"
 	android:layout_height="match_parent"
-    android:background="@color/light_gray"
+    android:background="@color/light_purple"
 	xmlns:app="http://schemas.android.com/apk/res-auto">
 
+	<FrameLayout
+		android:layout_width="match_parent"
+		android:layout_height="match_parent">
+
+	<com.jetradarmobile.snowfall.SnowfallView
+		android:id="@+id/snowflake_view"
+		android:visibility="gone"
+		android:layout_width="match_parent"
+		android:layout_height="match_parent"/>
+
 <RelativeLayout
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+	>
 
 
 <androidx.recyclerview.widget.RecyclerView
@@ -18,6 +29,8 @@
 	android:layout_height="wrap_content"
 	android:id="@+id/rv"
 	android:layout_marginBottom="60dp"
+
+
 	/>
 
 
@@ -90,7 +103,16 @@
 				android:lines="1"
 				/>
 
+		<Switch
+			android:id="@+id/btnSnowflake"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:text="@string/snowflake_mode"
+			android:layout_margin="9dp"
+			android:layout_gravity="center"
+			app:switchPadding="3dp"
 
+			/>
     </LinearLayout>
 
 
@@ -130,6 +152,7 @@
 			android:fontFamily="monospace"
 			 />
     </LinearLayout>
+	</FrameLayout>
 
 </LinearLayout>
 
diff --git a/app-tv/src/main/res/values/strings.xml b/app-tv/src/main/res/values/strings.xml
index 36d5041a..f4b1ffdb 100644
--- a/app-tv/src/main/res/values/strings.xml
+++ b/app-tv/src/main/res/values/strings.xml
@@ -244,4 +244,5 @@
     <string name="wifi_only">Wifi only</string>
     <string name="keep_your_apps_from_using_mobile_data">Only allow connection over wifi (coming soon!)</string>
     <string name="remove">Remove</string>
+    <string name="snowflake_mode">Snowflake</string>
 </resources>





More information about the tor-commits mailing list