[tor-commits] [snowflake-mobile/master] Created a workable UI and created a service class

cohosh at torproject.org cohosh at torproject.org
Fri Jun 5 16:00:09 UTC 2020


commit 49c4d5c62078d3831d66bb159d9b164fad2e90ff
Author: Hashik Donthineni <HashikDonthineni at gmail.com>
Date:   Wed Jun 3 20:23:45 2020 +0530

    Created a workable UI and created a service class
---
 .idea/misc.xml                                     |  2 +-
 .../org/torproject/snowflake/MainActivity.java     | 30 ++++++++++++++++++++++
 .../torproject/snowflake/MyPersistentService.java  | 16 ++++++++++++
 app/src/main/res/layout/activity_main.xml          | 10 ++++----
 4 files changed, 52 insertions(+), 6 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 7bfef59..37a7509 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/app/src/main/java/org/torproject/snowflake/MainActivity.java b/app/src/main/java/org/torproject/snowflake/MainActivity.java
index 31b77ff..240e285 100644
--- a/app/src/main/java/org/torproject/snowflake/MainActivity.java
+++ b/app/src/main/java/org/torproject/snowflake/MainActivity.java
@@ -2,7 +2,11 @@ package org.torproject.snowflake;
 
 import androidx.appcompat.app.AppCompatActivity;
 
+import android.app.ActivityManager;
+import android.content.Context;
 import android.os.Bundle;
+import android.widget.Button;
+import android.widget.Toast;
 
 public class MainActivity extends AppCompatActivity {
 
@@ -10,5 +14,31 @@ public class MainActivity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
+
+        Button startButton = findViewById(R.id.start_button);
+
+        startButton.setOnClickListener(v -> {
+            if (isServiceRunning()){ //Toggling the service.
+                //TODO: Start service
+            }
+            else{
+                //TODO: Stop service
+            }
+        });
+        if (BuildConfig.DEBUG)
+            startButton.performClick(); //To perform an automatic click in testing environment.
+    }
+
+    //Test to see if the service is already running.
+    private boolean isServiceRunning() {
+        ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+        if (manager != null) {
+            for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
+                if (MyPersistentService.class.getName().equals(service.service.getClassName())) {
+                    return true;
+                }
+            }
+        }
+        return false;
     }
 }
diff --git a/app/src/main/java/org/torproject/snowflake/MyPersistentService.java b/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
new file mode 100644
index 0000000..cc4806d
--- /dev/null
+++ b/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
@@ -0,0 +1,16 @@
+package org.torproject.snowflake;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+import androidx.annotation.Nullable;
+
+//Main foreground service to handle network calls and to relay the data in the back ground.
+public class MyPersistentService extends Service {
+    @Nullable
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 4fc2444..1c42128 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -6,13 +6,13 @@
     android:layout_height="match_parent"
     tools:context=".MainActivity">
 
-    <TextView
+    <Button
+        android:id="@+id/start_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="Hello World!"
+        android:text="Service Toggle"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
-
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file



More information about the tor-commits mailing list