From 80251ffe35ff325a7eaf8091cfca26d88e91965e Mon Sep 17 00:00:00 2001 From: Ryan Couture Date: Wed, 6 Feb 2019 21:40:50 -0500 Subject: [PATCH] passwordless treehouses bridge (fixes #155) (#158) --- .../Fragments/BridgeDialogFragment.java | 2 +- .../remote/Fragments/NetworkFragment.java | 61 ++++++++++++++++++- .../remote/Fragments/SystemFragment.java | 1 + .../remote/Fragments/TextBoxValidation.java | 7 ++- build.gradle | 2 +- 5 files changed, 65 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/treehouses/remote/Fragments/BridgeDialogFragment.java b/app/src/main/java/io/treehouses/remote/Fragments/BridgeDialogFragment.java index f29c7191d..5f74c013d 100644 --- a/app/src/main/java/io/treehouses/remote/Fragments/BridgeDialogFragment.java +++ b/app/src/main/java/io/treehouses/remote/Fragments/BridgeDialogFragment.java @@ -61,7 +61,6 @@ protected AlertDialog getAlertDialog(View mView) { .setPositiveButton(R.string.start_configuration, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { - // getActivity().getIntent().putExtra("isValidInput", mSSIDEditText.getText().toString().length() > 0? Boolean.TRUE: Boolean.FALSE); String essid = ESSIDEditText.getText().toString(); String hotspotessid = HotspotESSIDEditText.getText().toString(); String password = PasswordEditText.getText().toString(); @@ -70,6 +69,7 @@ public void onClick(DialogInterface dialog, int whichButton) { Intent intent = new Intent(); intent.putExtra("essid", essid); intent.putExtra("hssid", hotspotessid); + intent.putExtra("type","bridge"); intent.putExtra("password",password); intent.putExtra("hpassword",hotspotpassword); getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, intent); diff --git a/app/src/main/java/io/treehouses/remote/Fragments/NetworkFragment.java b/app/src/main/java/io/treehouses/remote/Fragments/NetworkFragment.java index f41ff7c73..7e08fe291 100644 --- a/app/src/main/java/io/treehouses/remote/Fragments/NetworkFragment.java +++ b/app/src/main/java/io/treehouses/remote/Fragments/NetworkFragment.java @@ -1,23 +1,31 @@ package io.treehouses.remote.Fragments; import android.app.Activity; +import android.app.AlertDialog; import android.app.DialogFragment; import android.app.Fragment; +import android.content.DialogInterface; import android.content.Intent; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.EditText; import android.widget.ListView; import java.util.ArrayList; +import androidx.fragment.app.FragmentActivity; import io.treehouses.remote.InitialActivity; import io.treehouses.remote.MiscOld.Constants; +import io.treehouses.remote.Network.BluetoothChatService; import io.treehouses.remote.R; import static android.content.Context.WIFI_SERVICE; @@ -28,14 +36,20 @@ public class NetworkFragment extends androidx.fragment.app.Fragment { InitialActivity initialActivity; +// EditText HotspotPasswordEditText; +// EditText PasswordEditText; + public NetworkFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + view = inflater.inflate(R.layout.activity_network_fragment, container, false); initialActivity = new InitialActivity(); + BluetoothChatService chatService = initialActivity.getChatService(); + chatService.updateHandler(mHandler); ArrayList list = new ArrayList(); list.add("Ethernet"); @@ -164,7 +178,7 @@ private void wifiOn(Bundle bundle){ // boolean b = wifi.enableNetwork(res, true); // Log.d("WifiPreference", "enableNetwork returned " + b ); } - private void hotspotOn(Bundle bundle){ + private void hotspotOn (Bundle bundle){ if(bundle.getString("HPWD").equals("")){ initialActivity.sendMessage("treehouses ap "+bundle.getString("hotspotType")+" "+bundle.getString("HSSID")); }else{ @@ -174,7 +188,48 @@ private void hotspotOn(Bundle bundle){ private void ethernetOn(Bundle bundle){ initialActivity.sendMessage("treehouses ethernet "+bundle.getString("ip")+" "+bundle.getString("mask")+" "+bundle.getString("gateway")+" "+bundle.getString("dns")); } + private void bridgeOn(Bundle bundle){ - initialActivity.sendMessage("treehouses bridge "+bundle.getString("essid")+" "+bundle.getString("hssid")+" "+bundle.getString("password")+" "+bundle.getString("hpassword")); + String overallMessage = "treehouses bridge "+(bundle.getString("essid"))+" "+bundle.getString("hssid")+" "; + + if(TextUtils.isEmpty(bundle.getString("password"))){ + overallMessage+="\"\""; + }else{ + overallMessage+=bundle.getString("password"); + } + overallMessage+=" "; + if(!TextUtils.isEmpty(bundle.getString("hpassword"))){ + overallMessage+=bundle.getString("hpassword"); + } + Log.e("NetworkFragment","Bridge RPI Message = "+overallMessage); + initialActivity.sendMessage(overallMessage); } -} + + private AlertDialog showAlertDialog(String message){ + return new AlertDialog.Builder(getContext()) + .setTitle("OUTPUT:") + .setMessage(message) + .setIcon(R.drawable.wificon) + .setNegativeButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } + }) + .show(); + } + + /** + * The Handler that gets information back from the BluetoothChatService + */ + public final Handler mHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + FragmentActivity activity = getActivity(); + switch (msg.what) { + case Constants.MESSAGE_READ: + String readMessage = (String)msg.obj; + showAlertDialog(readMessage); + break; + } + } + }; +} \ No newline at end of file diff --git a/app/src/main/java/io/treehouses/remote/Fragments/SystemFragment.java b/app/src/main/java/io/treehouses/remote/Fragments/SystemFragment.java index 902f5b98a..040a58121 100644 --- a/app/src/main/java/io/treehouses/remote/Fragments/SystemFragment.java +++ b/app/src/main/java/io/treehouses/remote/Fragments/SystemFragment.java @@ -57,6 +57,7 @@ public void getListFragment(int position){ switch (position){ case 0: // showEthernetDialog(); + break; case 1: initialActivity.sendMessage("treehouses expandfs"); diff --git a/app/src/main/java/io/treehouses/remote/Fragments/TextBoxValidation.java b/app/src/main/java/io/treehouses/remote/Fragments/TextBoxValidation.java index 4068672b3..f341d5690 100644 --- a/app/src/main/java/io/treehouses/remote/Fragments/TextBoxValidation.java +++ b/app/src/main/java/io/treehouses/remote/Fragments/TextBoxValidation.java @@ -127,10 +127,11 @@ private void validateETHERNET(final Context context) { * */ private void validateBridge(final Context context) { - if (ESSIDEditText.length() == 0 || HotspotESSIDEditText.length() == 0 || PasswordEditText.length() == 0 || HotspotPasswordEditText.length() == 0) { + if (ESSIDEditText.length() == 0 || HotspotESSIDEditText.length() == 0) { + dialogButtonTrueOrFalse(mDialog, false); - PasswordEditText.setError(context.getString(R.string.error_pwd_length)); - HotspotPasswordEditText.setError(context.getString(R.string.error_pwd_length)); + //PasswordEditText.setError(context.getString(R.string.error_pwd_length)); + //HotspotPasswordEditText.setError(context.getString(R.string.error_pwd_length)); }else { dialogButtonTrueOrFalse(mDialog,true); } diff --git a/build.gradle b/build.gradle index 72c996660..bc62e348d 100644 --- a/build.gradle +++ b/build.gradle @@ -15,8 +15,8 @@ buildscript { allprojects { repositories { - jcenter() google() + jcenter() } }