Commit eb4f27bf authored by MUDRA SAHU's avatar MUDRA SAHU

camera module

parent 0938a3d5
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.instilostandfound"> package="com.example.instilostandfound">
<uses-permission android:name="android.permission.CAMERA" /> <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 <application
android:allowBackup="true" android:allowBackup="true"
...@@ -11,8 +18,9 @@ ...@@ -11,8 +18,9 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity android:name=".Navigation" <activity
android:theme="@style/AppTheme.NoActionBar"/> android:name=".Navigation"
android:theme="@style/AppTheme.NoActionBar" />
<activity <activity
android:name=".FoundItem" android:name=".FoundItem"
android:label="@string/title_activity_found_item" android:label="@string/title_activity_found_item"
......
...@@ -10,8 +10,11 @@ import com.google.firebase.storage.StorageTask; ...@@ -10,8 +10,11 @@ import com.google.firebase.storage.StorageTask;
import com.google.firebase.storage.UploadTask; import com.google.firebase.storage.UploadTask;
import android.Manifest; import android.Manifest;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.icu.text.SimpleDateFormat; import android.icu.text.SimpleDateFormat;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
...@@ -21,6 +24,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; ...@@ -21,6 +24,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuth;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
...@@ -29,15 +33,18 @@ import androidx.core.content.FileProvider; ...@@ -29,15 +33,18 @@ import androidx.core.content.FileProvider;
import android.os.Environment; import android.os.Environment;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.view.View; import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.Toast; import android.widget.Toast;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.util.Date;
//import static android.app.Activity.RESULT_OK;
//import com.squareup.picasso.Picasso;
public class FoundItem extends AppCompatActivity implements View.OnClickListener{ public class FoundItem extends AppCompatActivity implements View.OnClickListener{
//private FirebaseAuth mAuth; //private FirebaseAuth mAuth;
...@@ -46,11 +53,16 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener ...@@ -46,11 +53,16 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
EditText desc; EditText desc;
EditText date; EditText date;
Spinner category; Spinner category;
ImageView camera;
String[] items = new String[]{"Others","Electronic", "2", "three"}; 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 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 DatabaseReference mDatabase;
private Uri mImageUri;
// ... // ...
//mDatabase = FirebaseDatabase.getInstance().getReference(); //mDatabase = FirebaseDatabase.getInstance().getReference();
...@@ -71,13 +83,45 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener ...@@ -71,13 +83,45 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
desc = findViewById(R.id.desc); desc = findViewById(R.id.desc);
date = findViewById(R.id.date); date = findViewById(R.id.date);
category = findViewById(R.id.category); 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); findViewById(R.id.submit).setOnClickListener(this);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
category.setAdapter(adapter); 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() { private void SubmitFound() {
String Title = title.getText().toString().trim(); String Title = title.getText().toString().trim();
String Place = place.getText().toString().trim(); String Place = place.getText().toString().trim();
...@@ -94,6 +138,7 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener ...@@ -94,6 +138,7 @@ public class FoundItem extends AppCompatActivity implements View.OnClickListener
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
} }
}*/ }*/
/*
String currentPhotoPath; String currentPhotoPath;
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
...@@ -103,9 +148,9 @@ String currentPhotoPath; ...@@ -103,9 +148,9 @@ String currentPhotoPath;
String imageFileName = "JPEG_" + timeStamp + "_"; String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES); File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile( File image = File.createTempFile(
imageFileName, /* prefix */ imageFileName,
".jpg", /* suffix */ ".jpg",
storageDir /* directory */ storageDir
); );
// Save a file: path for use with ACTION_VIEW intents // Save a file: path for use with ACTION_VIEW intents
...@@ -128,14 +173,41 @@ private void dispatchTakePictureIntent() { ...@@ -128,14 +173,41 @@ private void dispatchTakePictureIntent() {
} }
// Continue only if the File was successfully created // Continue only if the File was successfully created
if (photoFile != null) { if (photoFile != null) {
System.out.println(photoFile); Uri photoURI = FileProvider.getUriForFile(this,"com.example.instilostandfound.fileprovider", photoFile);
Uri photoURI = FileProvider.getUriForFile(FoundItem.this,"com.example.android.fileprovider", photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); 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) @RequiresApi(api = Build.VERSION_CODES.N)
public void onClick(View view) public void onClick(View view)
{ {
...@@ -145,7 +217,16 @@ private void dispatchTakePictureIntent() { ...@@ -145,7 +217,16 @@ private void dispatchTakePictureIntent() {
SubmitFound(); SubmitFound();
break; break;
case R.id.camera: 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){ if(FoundItem.this.checkSelfPermission(Manifest.permission.CAMERA)== PackageManager.PERMISSION_GRANTED){
///method to get Images ///method to get Images
dispatchTakePictureIntent(); dispatchTakePictureIntent();
...@@ -157,7 +238,7 @@ private void dispatchTakePictureIntent() { ...@@ -157,7 +238,7 @@ private void dispatchTakePictureIntent() {
} }
}else{ }else{
dispatchTakePictureIntent(); dispatchTakePictureIntent();
} }*/
break; break;
} }
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
...@@ -25,6 +26,8 @@ ...@@ -25,6 +26,8 @@
android:layout_marginTop = "30dp" android:layout_marginTop = "30dp"
android:layout_marginLeft="30dp" android:layout_marginLeft="30dp"
/> />
<Spinner <Spinner
android:id="@+id/category" android:id="@+id/category"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -107,5 +110,5 @@ ...@@ -107,5 +110,5 @@
android:layout_alignParentRight = "true" android:layout_alignParentRight = "true"
android:layout_alignParentEnd = "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"?>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
......
...@@ -18,4 +18,5 @@ ...@@ -18,4 +18,5 @@
<string name="close_navigation">Close Navigation</string> <string name="close_navigation">Close Navigation</string>
<string name="my_posts">My Posts</string> <string name="my_posts">My Posts</string>
<string name="logout">Logout</string> <string name="logout">Logout</string>
<string name="title_activity_camera">Camera</string>
</resources> </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