Skip to content

Commit

Permalink
Added way to recieve any image or text,
Browse files Browse the repository at this point in the history
Images added to app are copied and stored now in external files dir
  • Loading branch information
mannprerak2 committed Jun 12, 2018
1 parent f5abdc9 commit 1cb771d
Show file tree
Hide file tree
Showing 6 changed files with 129 additions and 11 deletions.
11 changes: 10 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,18 @@
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="Save text to Quick Notes">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter android:label="Save Image to Quick Notes">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<activity
android:name=".TaskActivity"
Expand Down
71 changes: 69 additions & 2 deletions app/src/main/java/com/pkmnapps/activitydo/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.design.widget.NavigationView;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
Expand All @@ -18,11 +19,21 @@
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;

import com.google.firebase.analytics.FirebaseAnalytics;
import com.pkmnapps.activitydo.databasehelpers.DBHelper;
import com.pkmnapps.activitydo.databasehelpers.DBHelperImage;
import com.pkmnapps.activitydo.databasehelpers.DBHelperText;
import com.pkmnapps.activitydo.databasehelpers.DBHelperWidgets;
import com.pkmnapps.activitydo.dataclasses.ActivityData;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;


public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener,
Expand All @@ -38,7 +49,7 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

receiveIntentForAction();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
Expand All @@ -58,7 +69,63 @@ protected void onCreate(Bundle savedInstanceState) {

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
}

private void receiveIntentForAction(){
// Get intent, action and MIME type
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();

if(Intent.ACTION_SEND.equals(action) && type!=null){
if("text/plain".equals(type)){
handleRecievedText(intent);
}else if (type.startsWith("image/")) {
handleRecievedImage(intent); // Handle single image being sent
}
else{
Toast.makeText(this,"Sorry, An Error Occured",Toast.LENGTH_SHORT).show();
}
}
}
void handleRecievedText(Intent intent){
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
String titleText = intent.getStringExtra(Intent.EXTRA_SUBJECT);
if (sharedText != null) {
//add to database
String uid = String.valueOf(System.currentTimeMillis());
new DBHelperText(this).insertText(uid,"0",titleText,sharedText);
new DBHelperWidgets(this).insertWidget(uid,0);
Toast.makeText(this,"Saved successfully",Toast.LENGTH_SHORT).show();
}
}
void handleRecievedImage(Intent intent){
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (imageUri != null) {
String uid = String.valueOf(System.currentTimeMillis());
try {
File file = createImageFile(uid);
InputStream input = getContentResolver().openInputStream(imageUri);
try (OutputStream output = new FileOutputStream(file)) {
byte[] buffer = new byte[4 * 1024]; // or other buffer size
int read;
while ((read = input.read(buffer)) != -1) {
output.write(buffer, 0, read);
}
output.flush();
}
new DBHelperImage(this).insertImage(uid,"0",Uri.fromFile(file).toString());
new DBHelperWidgets(this).insertWidget(uid,0);
Toast.makeText(this,"Saved successfully",Toast.LENGTH_SHORT).show();
}catch (Exception ignored){
Toast.makeText(this,"Error",Toast.LENGTH_SHORT).show();
finish();
}
}
}
private File createImageFile(String tempUid) {
// Create an image file name
String imageFileName = tempUid + ".jpg";
return new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES),imageFileName);
}
public void menuAddPinned(){
//add items to nav menu
Menu menu = navigationView.getMenu();
Expand Down
48 changes: 46 additions & 2 deletions app/src/main/java/com/pkmnapps/activitydo/QuickNotesFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
import com.pkmnapps.activitydo.dataclasses.Widget;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -197,7 +200,7 @@ public void onActivityResult(int requestCode, int resultCode, @Nullable Intent d
if (requestCode == REQUEST_LOAD_IMAGE && data != null) { //image from gallery
selectedImage = data.getData();
if (selectedImage != null) {
addImageWidget(selectedImage);
saveImageAddWidget(selectedImage);
} else {
genericError();
}
Expand Down Expand Up @@ -404,6 +407,13 @@ public void sortWidgetList(){
widgets.set(j,widgets.get(j+1));
widgets.set(j+1,temp);
swap = true;
}else if(widgets.get(j).getSortOrder()==widgets.get(j+1).getSortOrder()){
if(Long.parseLong(widgets.get(j).getUid())< Long.parseLong(widgets.get(j+1).getUid())) {
Widget temp = widgets.get(j);
widgets.set(j, widgets.get(j + 1));
widgets.set(j + 1, temp);
swap = true;
}
}
}
if(!swap)
Expand Down Expand Up @@ -482,7 +492,7 @@ public void onTileSelected(ImagePickerSheetView.ImagePickerTile selectedTile) {
startActivityForResult(createPickIntent(), REQUEST_LOAD_IMAGE);
} else if (selectedTile.isImageTile()) {
if(selectedTile.getImageUri()!=null)
addImageWidget(selectedTile.getImageUri());
saveImageAddWidget(selectedTile.getImageUri());
} else {
genericError();
}
Expand Down Expand Up @@ -520,6 +530,40 @@ private void addImageWidget(Uri selectedImageUri) {
activityContentAdapter.notifyDataSetChanged();
}

private void saveImageAddWidget(Uri selectedImageUri){
if (selectedImageUri != null) {
try {
File file = createImageFile();
InputStream input = getContext().getContentResolver().openInputStream(selectedImageUri);
try (OutputStream output = new FileOutputStream(file)) {
byte[] buffer = new byte[4 * 1024]; // or other buffer size
int read;
while ((read = input.read(buffer)) != -1) {
output.write(buffer, 0, read);
}
output.flush();
}
//save image uri to image database
ImageWidget imageWidget = new ImageWidget(tempUid,activityData.getId(),Uri.fromFile(file).toString());
DBHelperImage dbHelperImage = new DBHelperImage(getContext());
dbHelperImage.insertImage(imageWidget);

//show in widgets
widgets.add(0,new Widget(MConstants.imageW,imageWidget,tempUid,0));
//update UI
dbHelperWidgets.updateAllWidgetSortOrders(widgets);
activityContentAdapter.notifyDataSetChanged();
}catch (Exception ignored){
Toast.makeText(getContext(),"Error",Toast.LENGTH_SHORT).show();
}
}

}
private File createImageFile(String tempUid) {
// Create an image file name
String imageFileName = tempUid + ".jpg";
return new File(getContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES),imageFileName);
}
@Nullable
private Intent createPickIntent() {
Intent picImageIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.pkmnapps.activitydo.ActivityChoser;
import com.pkmnapps.activitydo.ImageViewFullscreen;
import com.pkmnapps.activitydo.MConstants;
import com.pkmnapps.activitydo.R;
Expand All @@ -27,7 +26,6 @@
import com.pkmnapps.activitydo.dataclasses.SimpleTextWidget;
import com.pkmnapps.activitydo.dataclasses.Widget;

import java.security.PublicKey;
import java.util.List;

public class ActivityContentAdapter extends RecyclerView.Adapter{
Expand Down Expand Up @@ -148,7 +146,7 @@ else if(item.getItemId()==R.id.action_change_activity){
((MyListViewHolder)holder).recyclerView.setNestedScrollingEnabled(false);
((MyListViewHolder)holder).recyclerView
.setAdapter(new InViewListAdapter(new DBHelperListItems(((MyListViewHolder)holder).itemView.getContext())
.get3ListItemsAsList(l.getUid())));
.get8ListItemsAsList(l.getUid())));
((MyListViewHolder)holder).recyclerView.setLayoutFrozen(true);

((MyListViewHolder)holder).itemView.setOnClickListener(new View.OnClickListener() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,11 @@ public List<ListItem> getAllListItemsAsList(String lid){
res.close();
return listItems;
}
public List<ListItem> get3ListItemsAsList(String lid){
public List<ListItem> get8ListItemsAsList(String lid){
List<ListItem> listItems = new ArrayList<>();

SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select * from "+HOME_TABLE_NAME +" where lid=? LIMIT 3", new String[]{lid});
Cursor res = db.rawQuery( "select * from "+HOME_TABLE_NAME +" where lid=? LIMIT 8", new String[]{lid});
res.moveToFirst();

ListItem a;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/simple_note_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:ellipsize="end"
android:maxLines="3"
android:maxLines="6"
android:paddingTop="5dp"
android:textColor="@color/colorGrey"
card_view:layout_constraintBottom_toBottomOf="parent"
Expand Down

0 comments on commit 1cb771d

Please sign in to comment.