1515 */
1616package org .ossdc .visionai ;
1717
18+ import android .Manifest ;
19+ import android .app .Activity ;
1820import android .content .Context ;
1921import android .content .Intent ;
2022import android .content .SharedPreferences ;
23+ import android .content .pm .PackageManager ;
2124import android .os .Bundle ;
25+ import android .support .v4 .app .ActivityCompat ;
26+ import android .support .v4 .content .ContextCompat ;
2227import android .support .v7 .app .AppCompatActivity ;
2328import android .support .v7 .widget .Toolbar ;
2429import android .view .View ;
3641
3742public class LauncherActivity extends AppCompatActivity implements AdapterView .OnItemSelectedListener {
3843
44+ private static final int ROOM_NAME_FROM_QR_CODE = 1 ;
45+ public static final String QRCODE_RESULT = "QRCODE_RESULT" ;
46+
3947 SharedPreferences sp ;
4048
4149 private String roomName ;
@@ -45,6 +53,7 @@ public class LauncherActivity extends AppCompatActivity implements AdapterView.O
4553 boolean hideLocalCamera = true ;
4654 private String robotMode = "OpenBot" ;
4755 String [] ROBOT_MODES = { "OpenBot" , "Neato" , "SPARK Assistant" };
56+ private String resFPS ;
4857
4958 private static final String CHAR_LIST =
5059 "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
@@ -85,6 +94,7 @@ protected void onCreate(Bundle savedInstanceState) {
8594 useDisplayArea = savedInstanceState .getBoolean ("useDisplayArea" ,false );
8695 hideLocalCamera = savedInstanceState .getBoolean ("hideLocalCamera" ,false );
8796 robotMode = savedInstanceState .getString ("robotMode" ,"OpenBot" );
97+ resFPS = savedInstanceState .getString ("resFPS" ,"2560,1440,30" );
8898 }
8999 else
90100 {
@@ -94,6 +104,7 @@ protected void onCreate(Bundle savedInstanceState) {
94104 useDisplayArea = sp .getBoolean ("useDisplayArea" ,false );
95105 hideLocalCamera = sp .getBoolean ("hideLocalCamera" ,false );
96106 robotMode = sp .getString ("robotMode" ,"OpenBot" );
107+ resFPS = sp .getString ("resFPS" ,"2560,1440,30" );
97108 }
98109
99110 EditText roomNameField = findViewById (R .id .editTextTextPersonName );
@@ -102,13 +113,17 @@ protected void onCreate(Bundle savedInstanceState) {
102113 Switch displayAreaSwitchField = findViewById (R .id .displayAreaSwitch );
103114 Switch hideLocalCameraSwitchField = findViewById (R .id .hideLocalCameraSwitch );
104115 Spinner robotModeField = findViewById (R .id .robotMode );
116+ EditText resFPSField = findViewById (R .id .editTextResFPS );
105117
106118 backCameraSwitchField .setChecked (useBackCamera );
107119 roomNameField .setText (roomName );
108120 roomPasswordField .setText (roomPassword );
109121 displayAreaSwitchField .setChecked (useDisplayArea );
110122 hideLocalCameraSwitchField .setChecked (hideLocalCamera );
111123 robotModeField .setSelection (Arrays .asList (ROBOT_MODES ).indexOf (robotMode ));
124+ resFPSField .setText (resFPS );
125+
126+
112127 }
113128
114129 @ Override
@@ -120,20 +135,72 @@ public void onNothingSelected(AdapterView<?> arg0) {
120135 // TODO - Custom Code
121136 }
122137
138+ @ Override
139+ public void onActivityResult (int requestCode , int resultCode , Intent data ) {
140+ super .onActivityResult (requestCode , resultCode , data );
141+ switch (requestCode ) {
142+ case (ROOM_NAME_FROM_QR_CODE ) : {
143+ if (resultCode == Activity .RESULT_OK ) {
144+ roomName = data .getStringExtra (QRCODE_RESULT );
145+
146+ EditText roomNameField = findViewById (R .id .editTextTextPersonName );
147+ roomNameField .setText (roomName );
148+ }
149+ break ;
150+ }
151+ }
152+ }
153+
154+ public void scanRoomQRCode (View view ) {
155+ launchActivity (QRCodeScanningActivity .class );
156+ }
157+
158+ public void launchActivity (Class <?> clss ) {
159+ if (ContextCompat .checkSelfPermission (this , Manifest .permission .CAMERA )
160+ != PackageManager .PERMISSION_GRANTED ) {
161+ mClss = clss ;
162+ ActivityCompat .requestPermissions (this ,
163+ new String []{Manifest .permission .CAMERA }, ZBAR_CAMERA_PERMISSION );
164+ } else {
165+ Intent intent = new Intent (this ,clss );
166+ startActivityForResult (intent , ROOM_NAME_FROM_QR_CODE );
167+
168+ }
169+ }
170+ private static final int ZBAR_CAMERA_PERMISSION = 1 ;
171+ private Class <?> mClss ;
172+
173+ @ Override
174+ public void onRequestPermissionsResult (int requestCode , String permissions [], int [] grantResults ) {
175+ switch (requestCode ) {
176+ case ZBAR_CAMERA_PERMISSION :
177+ if (grantResults .length > 0 && grantResults [0 ] == PackageManager .PERMISSION_GRANTED ) {
178+ if (mClss != null ) {
179+ Intent intent = new Intent (this , mClss );
180+ startActivity (intent );
181+ }
182+ } else {
183+ Toast .makeText (this , "Please grant camera permission to use the QR Scanner" , Toast .LENGTH_SHORT ).show ();
184+ }
185+ return ;
186+ }
187+ }
123188 public void openRaceOSSDCActivity (View view ) {
124189 EditText roomNameField = findViewById (R .id .editTextTextPersonName );
125190 EditText roomPasswordField = findViewById (R .id .editTextTextPassword );
126191 Switch backCameraSwitchField = findViewById (R .id .backCameraSwitch );
127192 Switch displayAreaSwitchField = findViewById (R .id .displayAreaSwitch );
128193 Switch hideLocalCameraSwitchField = findViewById (R .id .hideLocalCameraSwitch );
129194 Spinner robotModeField = findViewById (R .id .robotMode );
195+ EditText resFPSField = findViewById (R .id .editTextResFPS );
130196
131197 useBackCamera = backCameraSwitchField .isChecked ();
132198 roomName = roomNameField .getText ().toString ();
133199 roomPassword = roomPasswordField .getText ().toString ();
134200 useDisplayArea = displayAreaSwitchField .isChecked ();
135201 hideLocalCamera = hideLocalCameraSwitchField .isChecked ();
136202 robotMode = ROBOT_MODES [robotModeField .getSelectedItemPosition ()];
203+ resFPS = resFPSField .getText ().toString ();
137204
138205 Intent intent = new Intent (this , RaceOSSDCActivity .class );
139206 intent .putExtra ("roomName" , roomName );
@@ -142,6 +209,7 @@ public void openRaceOSSDCActivity(View view) {
142209 intent .putExtra ("useDisplayArea" , useDisplayArea );
143210 intent .putExtra ("hideLocalCamera" , hideLocalCamera );
144211 intent .putExtra ("robotMode" , robotMode );
212+ intent .putExtra ("resFPS" , resFPS );
145213
146214 sp =getSharedPreferences ("SD" , Context .MODE_PRIVATE );
147215 SharedPreferences .Editor ed =sp .edit ();
@@ -151,6 +219,7 @@ public void openRaceOSSDCActivity(View view) {
151219 ed .putBoolean ("useDisplayArea" ,useDisplayArea );
152220 ed .putBoolean ("hideLocalCamera" ,hideLocalCamera );
153221 ed .putString ("robotMode" ,robotMode );
222+ ed .putString ("resFPS" ,resFPS );
154223
155224 ed .commit ();
156225
@@ -166,6 +235,7 @@ public void onSaveInstanceState(Bundle savedInstanceState) {
166235 savedInstanceState .putBoolean ("useDisplayArea" , useDisplayArea );
167236 savedInstanceState .putBoolean ("hideLocalCamera" , hideLocalCamera );
168237 savedInstanceState .putString ("robotMode" , robotMode );
238+ savedInstanceState .putString ("resFPS" , resFPS );
169239 }
170240
171241 @ Override
@@ -177,5 +247,6 @@ public void onRestoreInstanceState(Bundle savedInstanceState) {
177247 useDisplayArea = savedInstanceState .getBoolean ("useDisplayArea" );
178248 hideLocalCamera = savedInstanceState .getBoolean ("hideLocalCamera" );
179249 robotMode = savedInstanceState .getString ("robotMode" );
250+ resFPS = savedInstanceState .getString ("resFPS" );
180251 }
181252}
0 commit comments