Commit eb4f27bf authored by MUDRA SAHU's avatar MUDRA SAHU

camera module

parent 0938a3d5
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.instilostandfound">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<application
android:allowBackup="true"
......@@ -11,8 +18,9 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Navigation"
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".Navigation"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".FoundItem"
android:label="@string/title_activity_found_item"
......
......@@ -10,8 +10,11 @@ import com.google.firebase.storage.StorageTask;
import com.google.firebase.storage.UploadTask;
import android.Manifest;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.icu.text.SimpleDateFormat;
import android.net.Uri;
import android.os.Build;
......@@ -21,6 +24,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.auth.FirebaseAuth;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
......@@ -29,15 +33,18 @@ import androidx.core.content.FileProvider;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.util.Date;
//import static android.app.Activity.RESULT_OK;
//import com.squareup.picasso.Picasso;
public class FoundItem extends AppCompatActivity implements View.OnClickListener{
//private FirebaseAuth mAuth;
......@@ -46,11 +53,16 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
EditText desc;
EditText date;
Spinner category;
ImageView camera;
String[] items = new String[]{"Others","Electronic", "2", "three"};
static final int REQUEST_IMAGE_CAPTURE = 1;
/*static final int REQUEST_IMAGE_CAPTURE = 1;
private static final int REQUEST_CAMERARESULT=201;
private static final int PICK_IMAGE_REQUEST = 1;*/
private static final int CAMERA_REQUEST = 1888;
private ImageView imageView;
private static final int MY_CAMERA_PERMISSION_CODE = 100;
private DatabaseReference mDatabase;
private Uri mImageUri;
// ...
//mDatabase = FirebaseDatabase.getInstance().getReference();
......@@ -71,13 +83,45 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
desc = findViewById(R.id.desc);
date = findViewById(R.id.date);
category = findViewById(R.id.category);
findViewById(R.id.camera).setOnClickListener(this);
camera = findViewById(R.id.camera);
camera.setOnClickListener(this);
/* findViewById(R.id.camera).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openFileChooser();
}
});*/
findViewById(R.id.submit).setOnClickListener(this);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
category.setAdapter(adapter);
}/*
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
&& data != null && data.getData() != null) {
mImageUri = data.getData();
//cropImage();
Picasso.with(getActivity()).load(mImageUri).into(mImageView);
}
}
private String getFileExtension(Uri uri) {
ContentResolver cR = getActivity().getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
return mime.getExtensionFromMimeType(cR.getType(uri));
}*/
private void SubmitFound() {
String Title = title.getText().toString().trim();
String Place = place.getText().toString().trim();
......@@ -94,6 +138,7 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}*/
/*
String currentPhotoPath;
@RequiresApi(api = Build.VERSION_CODES.N)
......@@ -103,9 +148,9 @@ String currentPhotoPath;
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
imageFileName,
".jpg",
storageDir
);
// Save a file: path for use with ACTION_VIEW intents
......@@ -128,14 +173,41 @@ private void dispatchTakePictureIntent() {
}
// Continue only if the File was successfully created
if (photoFile != null) {
System.out.println(photoFile);
Uri photoURI = FileProvider.getUriForFile(FoundItem.this,"com.example.android.fileprovider", photoFile);
Uri photoURI = FileProvider.getUriForFile(this,"com.example.instilostandfound.fileprovider", photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE)
{
if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
Toast.makeText(this, "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
else
{
Toast.makeText(this, "camera permission denied", Toast.LENGTH_LONG).show();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK)
{
Bitmap photo = (Bitmap) data.getExtras().get("data");
camera.setImageBitmap(photo);
}
}
@RequiresApi(api = Build.VERSION_CODES.N)
public void onClick(View view)
{
......@@ -145,7 +217,16 @@ private void dispatchTakePictureIntent() {
SubmitFound();
break;
case R.id.camera:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
requestPermissions(new String[]{Manifest.permission.CAMERA}, MY_CAMERA_PERMISSION_CODE);
}
else
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
/* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(FoundItem.this.checkSelfPermission(Manifest.permission.CAMERA)== PackageManager.PERMISSION_GRANTED){
///method to get Images
dispatchTakePictureIntent();
......@@ -157,7 +238,7 @@ private void dispatchTakePictureIntent() {
}
}else{
dispatchTakePictureIntent();
}
}*/
break;
}
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
......@@ -25,6 +26,8 @@
android:layout_marginTop = "30dp"
android:layout_marginLeft="30dp"
/>
<Spinner
android:id="@+id/category"
android:layout_width="match_parent"
......@@ -107,5 +110,5 @@
android:layout_alignParentRight = "true"
android:layout_alignParentEnd = "true"/>
</RelativeLayout>
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
......
......@@ -18,4 +18,5 @@
<string name="close_navigation">Close Navigation</string>
<string name="my_posts">My Posts</string>
<string name="logout">Logout</string>
<string name="title_activity_camera">Camera</string>
</resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment