diff --git a/app/build.gradle b/app/build.gradle
index 8b3de07..e487fa8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -26,6 +26,9 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation 'com.google.android.material:material:1.0.0'
+ implementation 'com.google.code.gson:gson:2.8.6'
+ implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.0.0'
testImplementation 'junit:junit:4.12'
@@ -34,4 +37,15 @@ dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
+
+
+
+
+
+
+
+
+
+
+ implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 303a1ce..1c5b3f0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,11 +4,15 @@
package="com.android.splitpersonality">
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/android/splitpersonality/WiFi/PageViewModel.java b/app/src/main/java/com/android/splitpersonality/WiFi/PageViewModel.java
new file mode 100644
index 0000000..8ec1f51
--- /dev/null
+++ b/app/src/main/java/com/android/splitpersonality/WiFi/PageViewModel.java
@@ -0,0 +1,23 @@
+package com.android.splitpersonality.WiFi;
+
+import androidx.arch.core.util.Function;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.Transformations;
+import androidx.lifecycle.ViewModel;
+public class PageViewModel extends ViewModel {
+ private MutableLiveData mTitle = new MutableLiveData<>();
+ private LiveData mText = Transformations.map(mTitle, new Function() {
+ @Override
+ public String apply(String input) {
+ return "Contact not available in " + input;
+ }
+ });
+ public void setIndex(String index) {
+ mTitle.setValue(index);
+ }
+ public LiveData getText() {
+ return mText;
+ }
+}
+
diff --git a/app/src/main/java/com/android/splitpersonality/WiFi/WifiActivity.java b/app/src/main/java/com/android/splitpersonality/WiFi/WifiActivity.java
index 85019f4..3fd608f 100644
--- a/app/src/main/java/com/android/splitpersonality/WiFi/WifiActivity.java
+++ b/app/src/main/java/com/android/splitpersonality/WiFi/WifiActivity.java
@@ -1,8 +1,12 @@
package com.android.splitpersonality.WiFi;
+import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
import android.Manifest;
import android.content.BroadcastReceiver;
@@ -10,38 +14,35 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
-import android.graphics.Color;
import android.location.LocationManager;
-import android.net.ConnectivityManager;
import android.net.wifi.ScanResult;
-import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
-import android.os.Build;
import android.os.Bundle;
import android.util.Log;
+import android.view.LayoutInflater;
import android.view.View;
-import android.widget.Button;
+import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.android.splitpersonality.R;
-import com.google.android.gms.location.LocationRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-public class WifiActivity extends AppCompatActivity {
+public class WifiActivity extends AppCompatActivity {
WifiManager manager;
WifiReceiver receiver;
LocationManager locationManager;
TextView text;
List list;
- ArrayList provider,x,y;
+ ArrayList provider,x,y, bss;
recyclerAdapter adapter;
ListView listView;
@@ -67,7 +68,7 @@ public void location()
.setMessage("Please enable location")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int i) {
- startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
+// startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@@ -145,6 +146,11 @@ public void onReceive(Context context, Intent intent) {
}
};
+ @Override
+ public void onPointerCaptureChanged(boolean hasCapture) {
+
+ }
+
class WifiReceiver extends BroadcastReceiver {
@@ -156,21 +162,39 @@ public void onReceive(Context c, Intent intent) {
if(!provider.isEmpty()) provider.clear();
if(!x.isEmpty()) x.clear();
if(!y.isEmpty()) y.clear();
-
+ bss= new ArrayList<>();
String providerName;
// print details
for (int i = 0; i < list.size(); i++) {
providerName = " "+(list.get(i).SSID)+" ("+(list.get(i).BSSID)+" )\n Frequency: "+(list.get(i).frequency)+" MHz\n Strength: "+returnlevel(list.get(i).level);
+ bss.add(list.get(i).BSSID+"");
provider.add(providerName);
x.add((list.get(i).SSID));
y.add(Integer.toString(list.get(i).level));
Log.i("pn",providerName);
}
- adapter = new recyclerAdapter(WifiActivity.this, provider);
- listView.setAdapter(adapter);
- adapter.notifyDataSetChanged();
-// location();
+ Log.e("wwwww",provider.toString());
+ SharedPreferences sharedPref = WifiActivity.this.getSharedPreferences("wifi_info",Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = sharedPref.edit();
+ editor.putString("wifis", provider.toString());
+ editor.putString("bssid", bss.toString());
+ editor.apply();
+ Intent wifiIntent = new Intent(WifiActivity.this,viewpagerr.class);
+ startActivity(wifiIntent);
+ }
+ }
+
+ //store bssid for triggering profiles
+ public void fx(View view)
+ {
+ Log.e("aaa",listView.getCount()+"");
+ for(int i=0;i();
+ bss=new ArrayList<>();
+ sharedPref = getActivity().getSharedPreferences("wifi_info",Context.MODE_PRIVATE);
+ String defaultValue = "none";
+ provider = new ArrayList(Arrays.asList(sharedPref.getString("wifis", defaultValue).split(",")));
+ bss = new ArrayList(Arrays.asList(sharedPref.getString("bssid", defaultValue).split(",")));
+ SharedPreferences settings = getActivity().getSharedPreferences("checks", Context.MODE_PRIVATE);
+ settings.edit().clear().commit();
+ }
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View root = inflater.inflate(R.layout.activity_wifi, container, false);
+// final TextView textView = root.findViewById(R.id.text);
+ final ListView listView = root.findViewById(R.id.list);
+ final TextView text2 = root.findViewById(R.id.text2);
+ final Button save = root.findViewById(R.id.button);
+ pageViewModel.getText().observe(this, new Observer() {
+ @Override
+ public void onChanged(@Nullable String s) {
+ text2.setText("Choose SSID's to save so as profiles trigger when device connects to these WAPs!");
+ adapter=new recyclerAdapter(getActivity(),provider,bss);
+ listView.setAdapter(adapter);
+ adapter.notifyDataSetChanged();
+ }
+ });
+
+ save.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ HashMap> map = new HashMap>();
+ for(int i=0;i {
Activity act;
- List wifinames;
+ List wifinames,bssid;
private LayoutInflater inflater;
+ SharedPreferences sharedPref;
- public recyclerAdapter(Activity a, List wifiName) {
+ public recyclerAdapter(Activity a, List wifiName, List bssid) {
super(a, R.layout.list_style, wifiName);
act = a;
inflater = LayoutInflater.from(act);
this.wifinames = wifiName;
+ this.bssid=bssid;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.list_style, parent, false);
TextView wifiProvider = convertView.findViewById(R.id.wifiname);
+ TextView bssid1 = convertView.findViewById(R.id.bssid);
wifiProvider.setText(wifinames.get(position));
+ bssid1.setText(bssid.get(position));
+ CheckBox check = convertView.findViewById(R.id.checkBox);
+ sharedPref = getContext().getSharedPreferences("checks",Context.MODE_PRIVATE);
+ Boolean defaultValue = false;
+ check.setChecked(sharedPref.getBoolean(String.valueOf(position), defaultValue));
+ Log.e("act"+position,sharedPref.getBoolean(String.valueOf(position), defaultValue)+"");
+ check.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ SharedPreferences sharedPref = getContext().getSharedPreferences("checks", Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = sharedPref.edit();
+ if(check.isChecked())
+ editor.putBoolean(String.valueOf(position), true);
+ else
+ editor.putBoolean(String.valueOf(position), false);
+ editor.apply();
+ }
+ });
return convertView;
}
}
diff --git a/app/src/main/java/com/android/splitpersonality/WiFi/saved_wifi.java b/app/src/main/java/com/android/splitpersonality/WiFi/saved_wifi.java
new file mode 100644
index 0000000..cb9a717
--- /dev/null
+++ b/app/src/main/java/com/android/splitpersonality/WiFi/saved_wifi.java
@@ -0,0 +1,110 @@
+package com.android.splitpersonality.WiFi;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.icu.text.AlphabeticIndex;
+import android.os.Bundle;
+import android.util.Log;
+import android.util.Pair;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import com.android.splitpersonality.R;
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+import com.google.gson.reflect.TypeToken;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+public class saved_wifi extends Fragment{
+ private static final String TAG = "";
+ private PageViewModel pageViewModel;
+ public saved_wifi() {}
+ recyclerAdapter adapter;
+ ArrayList provider,bss;
+ SharedPreferences sharedPref;String toastString;
+
+ public static saved_wifi newInstance() {
+ return new saved_wifi();
+ }
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ pageViewModel = ViewModelProviders.of((Fragment) this).get(PageViewModel.class);
+ pageViewModel.setIndex(TAG);
+ provider = new ArrayList<>(); bss = new ArrayList<>();
+ SharedPreferences prefs = getActivity().getSharedPreferences("wifi_saved", Context.MODE_PRIVATE);
+ String storedHashMapString = prefs.getString("bssids", "oopsDintWork");
+ Log.e("abcdc1",storedHashMapString);
+ java.lang.reflect.Type type = new TypeToken>>(){}.getType();
+ Gson gson = new Gson();
+ HashMap> testHashMap2 =new HashMap>();
+ testHashMap2= gson.fromJson(storedHashMapString, type);
+ Boolean failed=false;
+ //use values
+ try
+ {
+ for(Map.Entry> entry: testHashMap2.entrySet()) {
+ provider.add(entry.getKey() + " : " + entry.getValue().first);
+ bss.add(entry.getKey() + " : " + entry.getValue().first);
+ Log.e("abhi",entry.getKey() + " : " + entry.getValue().first);
+ }
+ }
+ catch (IllegalStateException | JsonSyntaxException exception) {
+ failed = true;
+ //...
+ }
+ }
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View root = inflater.inflate(R.layout.activity_wifi, container, false);
+ final ListView listView = root.findViewById(R.id.list);
+ final TextView text2 = root.findViewById(R.id.text2);
+ final Button save = root.findViewById(R.id.button);
+ pageViewModel.getText().observe(this, new Observer() {
+ @Override
+ public void onChanged(@Nullable String s) {
+// text2.setText("Choose SSID's to save so as profiles trigger when device connects to these WAPs!");
+ adapter=new recyclerAdapter(getActivity(),provider,bss);
+ listView.setAdapter(adapter);
+ adapter.notifyDataSetChanged();
+ }
+ });
+
+ save.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ for(int i=0;i() {
+// @Override
+// public void onSuccess(Location location) {
+// // Got last known location. In some rare situations this can be null.
+// if (location != null) {
+// Log.e("loc",location.toString());
+// // Logic to handle location object
+// }
+// }
+// });
+ getLocation();
+ }
+
+
+
+ void getLocation() {
+ try {
+ locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
+ locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void onLocationChanged(Location location) {
+ te.setText("Latitude: " + location.getLatitude() + "\n" + "Longitude: " + location.getLongitude());
+ try {
+ Geocoder geocoder = new Geocoder(this, Locale.getDefault());
+ List addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
+ te.setText(addresses.get(0).getAddressLine(0) + ", " +
+ addresses.get(0).getAddressLine(1) + ", " + addresses.get(0).getAddressLine(2));
+ } catch (Exception e) {
+ }
+ }
+
+
+ public void onProviderDisabled(String provider) {
+ Toast.makeText(locationActivity.this, "Please Enable GPS and Internet", Toast.LENGTH_SHORT).show();
+ }
+
+
+ public void onStatusChanged(String provider, int status, Bundle extras) {
+
+ }
+
+
+ public void onProviderEnabled(String provider) {
+
+ }
+
+}
diff --git a/app/src/main/res/layout/activity_all_wifi.xml b/app/src/main/res/layout/activity_all_wifi.xml
new file mode 100644
index 0000000..614b9fb
--- /dev/null
+++ b/app/src/main/res/layout/activity_all_wifi.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_location.xml b/app/src/main/res/layout/activity_location.xml
new file mode 100644
index 0000000..9b7d1d0
--- /dev/null
+++ b/app/src/main/res/layout/activity_location.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_viewpagerr.xml b/app/src/main/res/layout/activity_viewpagerr.xml
new file mode 100644
index 0000000..064c4cf
--- /dev/null
+++ b/app/src/main/res/layout/activity_viewpagerr.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_wifi.xml b/app/src/main/res/layout/activity_wifi.xml
index b8c87c6..eb8e9c5 100644
--- a/app/src/main/res/layout/activity_wifi.xml
+++ b/app/src/main/res/layout/activity_wifi.xml
@@ -1,5 +1,6 @@
-
@@ -8,11 +9,26 @@
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:text="Please switch on WiFi"
+ tools:visibility="gone" />
+
+
+
+
+ >
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_style.xml b/app/src/main/res/layout/list_style.xml
index 315c21e..49673a1 100644
--- a/app/src/main/res/layout/list_style.xml
+++ b/app/src/main/res/layout/list_style.xml
@@ -5,6 +5,12 @@
android:orientation="vertical">
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e6585e8..1e6ecd6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,6 @@
SplitPersonality
MainScreenActivity
+ All Networks
+ Saved Networks
diff --git a/build.gradle b/build.gradle
index fb516be..419aad0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,8 +7,10 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.5.2'
+ classpath 'com.android.tools.build:gradle:3.5.3'
+
+
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}