From 09a5ed21aa881026865594224f6847ff9021b93e Mon Sep 17 00:00:00 2001 From: "@Thilakasiri_M.D.T.S" <sampatht248@gmail.com> Date: Wed, 2 Nov 2022 19:19:32 +0530 Subject: [PATCH] Dashboard initial change --- README.md | 4 +- .../vehicleparkingsystem/Dashboard.java | 407 ++++++++++++++++++ 2 files changed, 410 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/example/vehicleparkingsystem/Dashboard.java diff --git a/README.md b/README.md index 9bd6061..b4158cd 100644 --- a/README.md +++ b/README.md @@ -78,4 +78,6 @@ Vehicle Parking System(2022-235) Objective:- Ensure the safety of the vehicle while parked in the vehicle-park using image processing and Machine Learning. - Also display of unsecured status by notification. \ No newline at end of file + Also display of unsecured status by notification. + + test \ No newline at end of file diff --git a/app/src/main/java/com/example/vehicleparkingsystem/Dashboard.java b/app/src/main/java/com/example/vehicleparkingsystem/Dashboard.java new file mode 100644 index 0000000..b909227 --- /dev/null +++ b/app/src/main/java/com/example/vehicleparkingsystem/Dashboard.java @@ -0,0 +1,407 @@ +package com.example.vehicleparkingsystem; + +import androidx.annotation.RequiresApi; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.NotificationCompat; +import androidx.core.content.ContextCompat; + +import android.app.AlertDialog; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Color; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.AsyncTask; +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.widget.EditText; +import android.widget.ImageView; +import android.widget.MediaController; +import android.widget.TextView; +import android.widget.VideoView; + +import com.example.vehicleparkingsystem.Models.BaseURL; +import com.example.vehicleparkingsystem.SQLite.Sqlitedb; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; +import java.util.Objects; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; + +public class Dashboard extends AppCompatActivity { + + Button button1; + Button button2; + Button button3; + Button button4; + Button button5; + String type; + String number; + int threatStatus; + int parkingStatus; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_dashboard); + + button1 = findViewById(R.id.parking); + button2 =findViewById(R.id.logout); + button3 =findViewById(R.id.entrance); + button4 =findViewById(R.id.violation); + button5 =findViewById(R.id.threat); + + new entranceDetection().execute(); + new ParkingViolation().execute(); + new threatDetection().execute(); + + button1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent mainIntent = new Intent(Dashboard.this,ParkingSlots.class); + Dashboard.this.startActivity(mainIntent); + Dashboard.this.finish(); + } + }); + + button2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent mainIntent = new Intent(Dashboard.this,Login.class); + Dashboard.this.startActivity(mainIntent); + Dashboard.this.finish(); + } + }); + + button3.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new entranceDetection().execute(); + } + }); + + button4.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new ParkingViolation().execute(); + } + }); + + button5.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new threatDetection().execute(); + } + }); + } + + + private class entranceDetection extends AsyncTask<String, String, String> { + + @Override + protected void onPreExecute() { + + } + + @Override + protected void onPostExecute(String s) { + +// AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(Dashboard.this); +// LayoutInflater inflater = LayoutInflater.from(Dashboard.this); +// View view1 = inflater.inflate(R.layout.custom_entrance_details, null); +// dialogBuilder.setView(view1); +// +// final TextView textView1 = (TextView) view1.findViewById(R.id.num); +// final TextView textView2 = (TextView) view1.findViewById(R.id.ty); +// +// textView1.setText(number); +// textView2.setText(type); +// +// final AlertDialog alertDialog = dialogBuilder.create(); +// alertDialog.show(); + + String message = "vehicle type is "+type+ " and vehicle number "+number+""; + + int reqCode = 1; + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + showNotification(Dashboard.this, "Entrance Detection", message, intent, reqCode); + + } + + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + @Override + protected String doInBackground(String... strings) { + + try { + + String Url = BaseURL.get_url() + "enternce"; + OkHttpClient client = new OkHttpClient(); + + Request request = new Request.Builder() + .url(Url) + .get() + .build(); + + try (Response response = client.newCall(request).execute()) { + ResponseBody body = response.body(); + JSONArray json = new JSONArray(body.string()); + System.out.println(json); + + for (int i = 0; i < json.length(); i++) { + JSONObject joo = json.getJSONObject(i); + type = joo.getString("type"); + number = joo.getString("number_plate"); + + } + + + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + + return null; + } finally { + + } + + } + } + + + private class threatDetection extends AsyncTask<String, String, String> { + + @Override + protected void onPreExecute() { + + } + + @Override + protected void onPostExecute(String s) { + + if (threatStatus == 1){ +// AlertDialog.Builder builder1 = new AlertDialog.Builder(Dashboard.this); +// builder1.setMessage("You have a threat. Be careful!!!"); +// builder1.setCancelable(true); +// +// builder1.setPositiveButton( +// "OK", +// new DialogInterface.OnClickListener() { +// public void onClick(DialogInterface dialog, int id) { +// dialog.dismiss(); +// } +// }); +// +// +// AlertDialog alert11 = builder1.create(); +// alert11.show(); + + String message = "You have a threat. Be careful!!!"; + + int reqCode = 1; + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + showNotification(Dashboard.this, "Threat Detection", message, intent, reqCode); + }else{ +// AlertDialog.Builder builder1 = new AlertDialog.Builder(Dashboard.this); +// builder1.setMessage("You have no threats. You are safe!"); +// builder1.setCancelable(true); +// +// builder1.setPositiveButton( +// "OK", +// new DialogInterface.OnClickListener() { +// public void onClick(DialogInterface dialog, int id) { +// dialog.dismiss(); +// } +// }); +// +// +// AlertDialog alert11 = builder1.create(); +// alert11.show(); + + String message = "You have no threats. You are safe!"; + + int reqCode = 1; + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + showNotification(Dashboard.this, "Threat Detection", message, intent, reqCode); + } + + } + + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + @Override + protected String doInBackground(String... strings) { + + try { + + String Url = BaseURL.get_url() + "threat"; + OkHttpClient client = new OkHttpClient(); + + Request request = new Request.Builder() + .url(Url) + .get() + .build(); + + try (Response response = client.newCall(request).execute()) { + ResponseBody body = response.body(); + JSONArray json = new JSONArray(body.string()); + System.out.println(json); + + for (int i = 0; i < json.length(); i++) { + JSONObject joo = json.getJSONObject(i); + threatStatus = joo.getInt("status"); + } + + + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + + return null; + } finally { + + } + + } + } + + private class ParkingViolation extends AsyncTask<String, String, String> { + + @Override + protected void onPreExecute() { + + } + + @Override + protected void onPostExecute(String s) { + + if (parkingStatus == 1){ +// AlertDialog.Builder builder1 = new AlertDialog.Builder(Dashboard.this); +// builder1.setMessage("You Parked very well!!"); +// builder1.setCancelable(true); +// +// builder1.setPositiveButton( +// "OK", +// new DialogInterface.OnClickListener() { +// public void onClick(DialogInterface dialog, int id) { +// dialog.dismiss(); +// } +// }); +// +// +// AlertDialog alert11 = builder1.create(); +// alert11.show(); + String message = "You Parked very well!!"; + + int reqCode = 1; + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + showNotification(Dashboard.this, "Parking Violation Detection", message, intent, reqCode); + }else{ + AlertDialog.Builder builder1 = new AlertDialog.Builder(Dashboard.this); + builder1.setMessage("You are not parked well!!!"); + builder1.setCancelable(true); + + builder1.setPositiveButton( + "OK", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(Dashboard.this); + LayoutInflater inflater = LayoutInflater.from(Dashboard.this); + View view1 = inflater.inflate(R.layout.custom_parking_violation, null); + dialogBuilder.setView(view1); + + final VideoView videoView = (VideoView) view1.findViewById(R.id.videoView); + MediaController mediaController; + mediaController = new MediaController(Dashboard.this); + mediaController.setAnchorView(videoView); + Uri localUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.parking); + videoView.setVideoURI(localUri); + videoView.setMediaController(mediaController); + videoView.start(); + + final AlertDialog alertDialog = dialogBuilder.create(); + alertDialog.show(); + } + }); + + + AlertDialog alert11 = builder1.create(); + alert11.show(); + } + + } + + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + @Override + protected String doInBackground(String... strings) { + + try { + + String Url = BaseURL.get_url() + "parking_violation"; + OkHttpClient client = new OkHttpClient(); + + Request request = new Request.Builder() + .url(Url) + .get() + .build(); + + try (Response response = client.newCall(request).execute()) { + ResponseBody body = response.body(); + JSONArray json = new JSONArray(body.string()); + System.out.println(json); + + for (int i = 0; i < json.length(); i++) { + JSONObject joo = json.getJSONObject(i); + parkingStatus = joo.getInt("status"); + } + + + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + + return null; + } finally { + + } + + } + } + + public void showNotification(Context context, String title, String message, Intent intent, int reqCode) { +// SharedPreferenceManager sharedPreferenceManager = SharedPreferenceManager.getInstance(context); + + PendingIntent pendingIntent = PendingIntent.getActivity(context, reqCode, intent, PendingIntent.FLAG_ONE_SHOT); + String CHANNEL_ID = "channel_name";// The id of the channel. + NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, CHANNEL_ID) + .setSmallIcon(R.drawable.car) + .setContentTitle(title) + .setContentText(message) + .setAutoCancel(true) + .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) + .setContentIntent(pendingIntent); + NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + CharSequence name = "Channel Name";// The user-visible name of the channel. + int importance = NotificationManager.IMPORTANCE_HIGH; + NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance); + notificationManager.createNotificationChannel(mChannel); + } + notificationManager.notify(reqCode, notificationBuilder.build()); // 0 is the request code, it should be unique id + + Log.d("showNotification", "showNotification: " + reqCode); + } +} \ No newline at end of file -- 2.24.1