├── .gitattributes ├── .gitignore ├── .idea ├── caches │ ├── build_file_checksums.ser │ └── gradle_models.ser ├── codeStyles │ └── Project.xml ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── dictionaries │ └── Programmer.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── google-services.json ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── lcukerd │ │ └── com │ │ ├── instagramclone │ │ └── ExampleInstrumentedTest.java │ │ └── instaswipe │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── lcukerd │ │ │ └── com │ │ │ └── instaswipe │ │ │ ├── Database │ │ │ ├── DbInteract.java │ │ │ └── eventDBcontract.java │ │ │ ├── Home │ │ │ ├── CameraFragment.java │ │ │ ├── HomeActivity.java │ │ │ ├── HomeFragment.java │ │ │ └── MessagesFragment.java │ │ │ ├── ProfileActivity.java │ │ │ ├── SearchActivity.java │ │ │ ├── Share │ │ │ ├── GalleryFragment.java │ │ │ ├── NextActivity.java │ │ │ ├── PhotoFragment.java │ │ │ └── ShareActivity.java │ │ │ ├── SwipePic.java │ │ │ ├── Utils │ │ │ ├── BottomNavigationViewHelper.java │ │ │ ├── FilePaths.java │ │ │ ├── FileSearch.java │ │ │ ├── Heart.java │ │ │ ├── ImageManager.java │ │ │ ├── Scrapper.java │ │ │ ├── SquareImageView.java │ │ │ └── loadImage.java │ │ │ ├── adapter │ │ │ ├── GridImageAdapter.java │ │ │ └── UserListAdapter.java │ │ │ └── models │ │ │ ├── AccountDetails.java │ │ │ └── User.java │ └── res │ │ ├── anim │ │ ├── fade_in.xml │ │ └── fade_out.xml │ │ ├── drawable-hdpi │ │ ├── black_border.xml │ │ ├── et_border.xml │ │ ├── grey_border.xml │ │ ├── ic_action_name.png │ │ ├── ic_alert.png │ │ ├── ic_android.png │ │ ├── ic_arrow.png │ │ ├── ic_backarrow.png │ │ ├── ic_black_x.png │ │ ├── ic_camera.png │ │ ├── ic_checkmark.png │ │ ├── ic_circle.png │ │ ├── ic_description.png │ │ ├── ic_display_name.png │ │ ├── ic_ellipses.png │ │ ├── ic_email.png │ │ ├── ic_heart_outline.png │ │ ├── ic_house.png │ │ ├── ic_instagram_black.png │ │ ├── ic_phone.png │ │ ├── ic_play_for_work_black_24dp.png │ │ ├── ic_search.png │ │ ├── ic_speech_bubble.png │ │ ├── ic_username.png │ │ ├── ic_videocam_white_24dp.png │ │ └── ic_web.png │ │ ├── drawable-mdpi │ │ ├── ic_action_name.png │ │ ├── ic_alert.png │ │ ├── ic_android.png │ │ ├── ic_arrow.png │ │ ├── ic_backarrow.png │ │ ├── ic_black_x.png │ │ ├── ic_camera.png │ │ ├── ic_checkmark.png │ │ ├── ic_circle.png │ │ ├── ic_description.png │ │ ├── ic_display_name.png │ │ ├── ic_ellipses.png │ │ ├── ic_email.png │ │ ├── ic_heart_outline.png │ │ ├── ic_house.png │ │ ├── ic_instagram_black.png │ │ ├── ic_phone.png │ │ ├── ic_play_for_work_black_24dp.png │ │ ├── ic_search.png │ │ ├── ic_speech_bubble.png │ │ ├── ic_username.png │ │ ├── ic_videocam_white_24dp.png │ │ └── ic_web.png │ │ ├── drawable-xhdpi │ │ ├── ic_action_name.png │ │ ├── ic_alert.png │ │ ├── ic_android.png │ │ ├── ic_arrow.png │ │ ├── ic_backarrow.png │ │ ├── ic_black_x.png │ │ ├── ic_camera.png │ │ ├── ic_checkmark.png │ │ ├── ic_circle.png │ │ ├── ic_description.png │ │ ├── ic_display_name.png │ │ ├── ic_ellipses.png │ │ ├── ic_email.png │ │ ├── ic_heart_outline.png │ │ ├── ic_house.png │ │ ├── ic_instagram_black.png │ │ ├── ic_phone.png │ │ ├── ic_play_for_work_black_24dp.png │ │ ├── ic_search.png │ │ ├── ic_speech_bubble.png │ │ ├── ic_username.png │ │ ├── ic_videocam_white_24dp.png │ │ └── ic_web.png │ │ ├── drawable-xxhdpi │ │ ├── ic_action_name.png │ │ ├── ic_alert.png │ │ ├── ic_android.png │ │ ├── ic_arrow.png │ │ ├── ic_backarrow.png │ │ ├── ic_black_x.png │ │ ├── ic_camera.png │ │ ├── ic_checkmark.png │ │ ├── ic_circle.png │ │ ├── ic_description.png │ │ ├── ic_display_name.png │ │ ├── ic_ellipses.png │ │ ├── ic_email.png │ │ ├── ic_heart_outline.png │ │ ├── ic_heart_white.xml │ │ ├── ic_house.png │ │ ├── ic_instagram_black.png │ │ ├── ic_phone.png │ │ ├── ic_play_for_work_black_24dp.png │ │ ├── ic_search.png │ │ ├── ic_speech_bubble.png │ │ ├── ic_username.png │ │ ├── ic_videocam_white_24dp.png │ │ ├── ic_web.png │ │ └── vector_heart_white.xml │ │ ├── drawable-xxxhdpi │ │ ├── ic_play_for_work_black_24dp.png │ │ └── ic_videocam_white_24dp.png │ │ ├── drawable │ │ ├── Thumbs.db │ │ ├── grey_border_bottom.xml │ │ ├── ic_heart_red.xml │ │ ├── instagram_logo.png │ │ ├── instaicon.png │ │ ├── vector_heart_red.xml │ │ ├── white_grey_border_bottom.xml │ │ ├── white_grey_border_top.xml │ │ └── white_rounded_button.xml │ │ ├── layout │ │ ├── actionbuttons.xml │ │ ├── activity_accountsettings.xml │ │ ├── activity_home.xml │ │ ├── activity_login.xml │ │ ├── activity_next.xml │ │ ├── activity_register.xml │ │ ├── activity_share.xml │ │ ├── activity_swipepic.xml │ │ ├── dialog_confirm_password.xml │ │ ├── fragment_camera.xml │ │ ├── fragment_editprofile.xml │ │ ├── fragment_gallery.xml │ │ ├── fragment_home.xml │ │ ├── fragment_messages.xml │ │ ├── fragment_photo.xml │ │ ├── fragment_profile.xml │ │ ├── fragment_signout.xml │ │ ├── fragment_swipepic.xml │ │ ├── fragment_view_comments.xml │ │ ├── fragment_view_post.xml │ │ ├── layout_bottom_navigation_view.xml │ │ ├── layout_bottom_tabs.xml │ │ ├── layout_center_accountsettings.xml │ │ ├── layout_center_profile.xml │ │ ├── layout_center_viewpager.xml │ │ ├── layout_comment.xml │ │ ├── layout_grid_imageview.xml │ │ ├── layout_top_tabs.xml │ │ ├── layout_view_post.xml │ │ ├── popup.xml │ │ ├── snippet_center_editprofile.xml │ │ ├── snippet_comments_toolbar.xml │ │ ├── snippet_post_toolbar.xml │ │ ├── snippet_top_accountsettingtoolbar.xml │ │ ├── snippet_top_editprofiletoolbar.xml │ │ ├── snippet_top_gallerytoolbar.xml │ │ ├── snippet_top_nexttoolbar.xml │ │ ├── snippet_top_profile.xml │ │ ├── snippet_top_profilebar.xml │ │ └── usersview.xml │ │ ├── menu │ │ ├── bottom_navigation_menu.xml │ │ ├── menu_main.xml │ │ ├── profile_menu.xml │ │ └── toolbar_search.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── lcukerd │ └── com │ ├── instagramclone │ └── ExampleUnitTest.java │ └── instaswipe │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── updates.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | xmlns:android 14 | 15 | ^$ 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | xmlns:.* 25 | 26 | ^$ 27 | 28 | 29 | BY_NAME 30 | 31 |
32 |
33 | 34 | 35 | 36 | .*:id 37 | 38 | http://schemas.android.com/apk/res/android 39 | 40 | 41 | 42 |
43 |
44 | 45 | 46 | 47 | .*:name 48 | 49 | http://schemas.android.com/apk/res/android 50 | 51 | 52 | 53 |
54 |
55 | 56 | 57 | 58 | name 59 | 60 | ^$ 61 | 62 | 63 | 64 |
65 |
66 | 67 | 68 | 69 | style 70 | 71 | ^$ 72 | 73 | 74 | 75 |
76 |
77 | 78 | 79 | 80 | .* 81 | 82 | ^$ 83 | 84 | 85 | BY_NAME 86 | 87 |
88 |
89 | 90 | 91 | 92 | .* 93 | 94 | http://schemas.android.com/apk/res/android 95 | 96 | 97 | ANDROID_ATTRIBUTE_ORDER 98 | 99 |
100 |
101 | 102 | 103 | 104 | .* 105 | 106 | .* 107 | 108 | 109 | BY_NAME 110 | 111 |
112 |
113 |
114 |
115 |
116 |
-------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/dictionaries/Programmer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | nameof 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Instagram declared Scraping its data as illegal also they started changing there data format very frequently so I have decided to stop modifying this app any further. Anyone is free to fork(so that i can also use your app) this and modify it as they want.

InstaSwipe

2 | 3 | InstaSwipe is an Instagram client for Android. It will show posts (images and videos) in fullscreen mode and will let you swipe to get to next post. You can also view others profile pic in high resolution in fullscreen. All that without logging in. It might not seem much but will be heaven for some. 4 | 5 | Originally, this project is a "clone of Instagram" made ,using Firebase(auth,data etc), owned by Mitch Tabian. I have changed the source code to make it retrieve real Instagram data and show in the pre-built UI of this project.Pieces of UI that I used here are made/rebuilt by me. 6 | 7 | I am not using Instagram API, because I might never get accepted to access data out of sandbox API, therefore I am retrieving data from source code of Instagram's web pages. 8 | 9 |

Features:

10 | 17 | 18 |

How to use app:

19 |
  • Click on search icon from bottom navigation view.
  • 20 |
  • Search for the account.
  • 21 |
  • When account is displayed, either tap on it to view account or long tap to save this account(so that you don't have to search it again).
  • 22 |
  • You can tap on profile pic in grid view page to view its original upload quality in full screen.
  • 23 |
  • Everything else is basic controls.
  • 24 |
  • You can now download pics and save it on your phone. (Download icon in bottom navigation view).
  • 25 |
  • Any other tab from bottom navigation bar are for future use, so don't mess around 26 | 27 |

    Known issues/features requirement (If someone wants to contribute.)

    28 | Cannot view all images in sidecar (group of photos posted together).
  • 29 |
  • Get to photo showed in swipepic in grid adapter when pressed back button.
  • 30 |
  • Show loading at bottom when more pics are loading.
  • 31 |
  • Cannot show live video and story.
  • 32 |
    33 | Screenshot1 34 | Screenshot2 35 | Screenshot3Profile Pic in original upload quality in full screen. 36 | Screenshot4 37 | Screenshot5Ability to swipe to next pic and view image in their orinal aspect ratio. 38 | Screenshot6Ability to zoom and pan image in full screen. 39 | Screenshot7Ability to save pic on phone. 40 | Screenshot8Grid view to view offline and downloaded pics. 41 | Screenshot9 42 |
    43 | 44 |

    Download from here.

    45 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion '26.0.2' 6 | defaultConfig { 7 | applicationId "lcukerd.com.instaswipe" 8 | minSdkVersion 18 9 | targetSdkVersion 25 10 | versionCode 4 11 | versionName "1.4" 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 25 | exclude group: 'com.android.support', module: 'support-annotations' 26 | }) 27 | compile 'com.android.support:appcompat-v7:25.3.1' 28 | compile 'com.android.support.constraint:constraint-layout:1.0.2' 29 | testCompile 'junit:junit:4.12' 30 | //Design library for Coordinator Layout and Toolbars 31 | compile 'com.android.support:design:25.3.1' 32 | //BottomNavigationViewEx library 33 | compile 'com.github.ittianyu:BottomNavigationViewEx:1.1.9' 34 | //Circle ImageView 35 | compile 'de.hdodenhof:circleimageview:2.1.0' 36 | //Universal image loader 37 | compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 38 | //firebase authentication 39 | compile 'com.koushikdutta.ion:ion:2.2.1' 40 | 41 | compile 'com.github.bumptech.glide:glide:4.1.1' 42 | annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1' 43 | 44 | compile 'com.github.chrisbanes:PhotoView:2.0.0' 45 | 46 | compile 'com.afollestad:easyvideoplayer:0.3.0' 47 | } 48 | 49 | //Firebase 50 | apply plugin: 'com.google.gms.google-services' 51 | 52 | 53 | -------------------------------------------------------------------------------- /app/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "352531809002", 4 | "firebase_url": "https://instagramclone3-b6678.firebaseio.com", 5 | "project_id": "instagramclone3-b6678", 6 | "storage_bucket": "instagramclone3-b6678.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:352531809002:android:d49c650ed5c2c559", 12 | "android_client_info": { 13 | "package_name": "lcukerd.com.instaswipe" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "352531809002-gi64mu16aovb40gf82b1fi2sen302e9h.apps.googleusercontent.com", 19 | "client_type": 1, 20 | "android_info": { 21 | "package_name": "lcukerd.com.instaswipe", 22 | "certificate_hash": "a1282f8c2b490a54cc1d7bdcefea5c630f537950" 23 | } 24 | }, 25 | { 26 | "client_id": "352531809002-sm8t77fn6vf3177s6kig01tm0bd46clo.apps.googleusercontent.com", 27 | "client_type": 3 28 | } 29 | ], 30 | "api_key": [ 31 | { 32 | "current_key": "AIzaSyCJXKgHH5JH7ytTLDSSJ4IeE3iFl5AV7pw" 33 | } 34 | ], 35 | "services": { 36 | "analytics_service": { 37 | "status": 1 38 | }, 39 | "appinvite_service": { 40 | "status": 2, 41 | "other_platform_oauth_client": [ 42 | { 43 | "client_id": "352531809002-sm8t77fn6vf3177s6kig01tm0bd46clo.apps.googleusercontent.com", 44 | "client_type": 3 45 | } 46 | ] 47 | }, 48 | "ads_service": { 49 | "status": 2 50 | } 51 | } 52 | } 53 | ], 54 | "configuration_version": "1" 55 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\User\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /app/src/androidTest/java/lcukerd/com/instagramclone/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instagramclone; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.assertEquals; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("tabian.com.instagramclone", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/androidTest/java/lcukerd/com/instaswipe/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.assertEquals; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("tabian.com.instagramclone", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Database/DbInteract.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Database; 2 | 3 | import android.content.ContentValues; 4 | import android.content.Context; 5 | import android.content.pm.PackageManager; 6 | import android.content.pm.ResolveInfo; 7 | import android.database.Cursor; 8 | import android.database.sqlite.SQLiteDatabase; 9 | import android.graphics.Bitmap; 10 | import android.graphics.BitmapFactory; 11 | import android.net.Uri; 12 | import android.os.Environment; 13 | import android.provider.MediaStore; 14 | import android.support.v4.content.FileProvider; 15 | import android.util.Log; 16 | 17 | import java.io.ByteArrayOutputStream; 18 | import java.io.File; 19 | import java.io.FileInputStream; 20 | import java.io.FileOutputStream; 21 | import java.io.IOException; 22 | import java.util.ArrayList; 23 | import java.util.List; 24 | 25 | import lcukerd.com.instaswipe.models.User; 26 | 27 | /** 28 | * Created by Programmer on 14-09-2017. 29 | */ 30 | 31 | public class DbInteract 32 | { 33 | private eventDBcontract dBcontract; 34 | private String[] projection1 = { 35 | eventDBcontract.ListofItem.columnuser, 36 | eventDBcontract.ListofItem.columnurl, 37 | eventDBcontract.ListofItem.columnquery, 38 | eventDBcontract.ListofItem.columnimage 39 | }; 40 | private String[] projection2 = { 41 | eventDBcontract.ListofItem.columnowner, 42 | eventDBcontract.ListofItem.columnpic 43 | }; 44 | private static String TAG = DbInteract.class.getSimpleName(); 45 | private Context context; 46 | 47 | public DbInteract(Context context) 48 | { 49 | this.context = context; 50 | dBcontract = new eventDBcontract(context); 51 | } 52 | 53 | public ArrayList readfromDB() 54 | { 55 | SQLiteDatabase db = dBcontract.getReadableDatabase(); 56 | Cursor cursor = db.query(eventDBcontract.ListofItem.tableName1, projection1, null, null, null, null, null); 57 | ArrayList usernames = new ArrayList<>(); 58 | while (cursor.moveToNext()) 59 | usernames.add(new User(getImage(cursor.getBlob(cursor.getColumnIndex(eventDBcontract.ListofItem.columnimage))), 60 | cursor.getString(cursor.getColumnIndex(eventDBcontract.ListofItem.columnuser)), 61 | cursor.getString(cursor.getColumnIndex(eventDBcontract.ListofItem.columnurl)), 62 | cursor.getString(cursor.getColumnIndex(eventDBcontract.ListofItem.columnquery)))); 63 | 64 | Log.d(TAG, "Returned " + String.valueOf(cursor.getCount()) + " usernames"); 65 | return (usernames); 66 | } 67 | 68 | public void adduser(Bitmap profilePic, String username, String url, String query) 69 | { 70 | SQLiteDatabase db = dBcontract.getWritableDatabase(); 71 | ContentValues values = new ContentValues(); 72 | 73 | values.put(eventDBcontract.ListofItem.columnimage, getBitmapAsByteArray(profilePic)); 74 | values.put(eventDBcontract.ListofItem.columnuser, username); 75 | values.put(eventDBcontract.ListofItem.columnurl, url); 76 | values.put(eventDBcontract.ListofItem.columnquery, query); 77 | db.insert(eventDBcontract.ListofItem.tableName1, null, values); 78 | Log.d(TAG, "Add User " + username); 79 | } 80 | 81 | public void deleteuser(String username) 82 | { 83 | SQLiteDatabase db = dBcontract.getWritableDatabase(); 84 | Log.d(TAG, String.valueOf(db.delete(eventDBcontract.ListofItem.tableName1, 85 | eventDBcontract.ListofItem.columnuser + " = '" + username + "'", null))); 86 | } 87 | 88 | public void updateprofilepic(String username, Bitmap profilepic) 89 | { 90 | SQLiteDatabase db = dBcontract.getWritableDatabase(); 91 | ContentValues values = new ContentValues(); 92 | 93 | values.put(eventDBcontract.ListofItem.columnimage, getBitmapAsByteArray(profilepic)); 94 | db.update(eventDBcontract.ListofItem.tableName1, values, eventDBcontract.ListofItem.columnuser + " = ?", new String[]{username}); 95 | } 96 | 97 | public void savepic(Bitmap pic) 98 | { 99 | SQLiteDatabase db = dBcontract.getWritableDatabase(); 100 | ContentValues values = new ContentValues(); 101 | 102 | FileOutputStream out = null; 103 | try 104 | { 105 | File image = createImageFile(); 106 | out = new FileOutputStream(image); 107 | pic.compress(Bitmap.CompressFormat.PNG, 100, out); 108 | values.put(eventDBcontract.ListofItem.columnpic, image.getPath()); 109 | db.insert(eventDBcontract.ListofItem.tableName2, null, values); 110 | Log.i(TAG, "Pic saved " + image.getPath()); 111 | } catch (Exception e) 112 | { 113 | e.printStackTrace(); 114 | } finally 115 | { 116 | try 117 | { 118 | if (out != null) 119 | { 120 | out.close(); 121 | } 122 | } catch (IOException e) 123 | { 124 | e.printStackTrace(); 125 | } 126 | } 127 | } 128 | 129 | private File createImageFile() throws IOException 130 | { 131 | String EName = "Image"; 132 | File storageDir = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES); 133 | File image = File.createTempFile(EName, ".jpg", storageDir); 134 | return image; 135 | } 136 | 137 | public Bitmap getDownloadedpics(int index) 138 | { 139 | SQLiteDatabase db = dBcontract.getReadableDatabase(); 140 | Cursor cursor = db.query(eventDBcontract.ListofItem.tableName2, projection2, null, null, null, null, null); 141 | cursor.moveToPosition(index); 142 | Bitmap photo = null; 143 | try 144 | { 145 | Log.d(TAG, cursor.getString(cursor.getColumnIndex(eventDBcontract.ListofItem.columnpic))); 146 | File fos = new File(cursor.getString(cursor.getColumnIndex(eventDBcontract.ListofItem.columnpic))); 147 | photo = BitmapFactory.decodeStream(new FileInputStream(fos)); 148 | } catch (IOException e) 149 | { 150 | Log.e(TAG, "Can't read image"); 151 | } 152 | Log.d(TAG, "Returned " + String.valueOf(cursor.getCount()) + " pics"); 153 | return (photo); 154 | } 155 | 156 | public int numberofdownloads() 157 | { 158 | SQLiteDatabase db = dBcontract.getReadableDatabase(); 159 | Cursor cursor = db.query(eventDBcontract.ListofItem.tableName2, projection2, null, null, null, null, null); 160 | Log.d(TAG, "Returned " + String.valueOf(cursor.getCount()) + " pics"); 161 | return (cursor.getCount()); 162 | } 163 | 164 | public void deletedownloadedpic(int index) 165 | { 166 | SQLiteDatabase db = dBcontract.getWritableDatabase(); 167 | Cursor cursor = db.query(eventDBcontract.ListofItem.tableName2, projection2, null, null, null, null, null); 168 | cursor.moveToPosition(index); 169 | String uri = cursor.getString(cursor.getColumnIndex(eventDBcontract.ListofItem.columnpic)); 170 | Log.d(TAG, "Deleted " + String.valueOf(db.delete(eventDBcontract.ListofItem.tableName2, 171 | eventDBcontract.ListofItem.columnpic + " = '" + uri + "'", null)) + " pic."); 172 | File file = new File(uri); 173 | file.delete(); 174 | } 175 | 176 | 177 | public static byte[] getBitmapAsByteArray(Bitmap bitmap) 178 | { 179 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 180 | bitmap.compress(Bitmap.CompressFormat.PNG, 0, outputStream); 181 | return outputStream.toByteArray(); 182 | } 183 | 184 | public static Bitmap getImage(byte[] image) 185 | { 186 | return BitmapFactory.decodeByteArray(image, 0, image.length); 187 | } 188 | 189 | } 190 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Database/eventDBcontract.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Database; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.database.sqlite.SQLiteOpenHelper; 6 | import android.util.Log; 7 | 8 | /** 9 | * Created by Programmer on 14-09-2017. 10 | */ 11 | 12 | public class eventDBcontract extends SQLiteOpenHelper 13 | { 14 | 15 | private static final String SQL_CREATE_ENTRIES1 = 16 | "CREATE TABLE " + ListofItem.tableName1 + " (" + 17 | ListofItem.columnurl + " TEXT, " + 18 | ListofItem.columnquery + " TEXT, " + 19 | ListofItem.columnimage + " BLOB, " + 20 | ListofItem.columnuser + " TEXT );"; 21 | 22 | private static final String SQL_CREATE_ENTRIES2 = 23 | "CREATE TABLE " + ListofItem.tableName2 + " (" + 24 | ListofItem.columnpic + " TEXT, " + 25 | ListofItem.columnowner + " TEXT );"; 26 | 27 | public static int DATABASE_VERSION = 2; 28 | public static final String DATABASE_NAME = "InstaSwipe.db"; 29 | 30 | public eventDBcontract(Context context) 31 | { 32 | super(context, DATABASE_NAME, null, DATABASE_VERSION); 33 | } 34 | 35 | public void onCreate(SQLiteDatabase db) 36 | { 37 | db.execSQL(SQL_CREATE_ENTRIES1); 38 | db.execSQL(SQL_CREATE_ENTRIES2); 39 | Log.d("Database", "created"); 40 | } 41 | 42 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 43 | { 44 | switch (newVersion) 45 | { 46 | case 2: 47 | db.execSQL(SQL_CREATE_ENTRIES2); 48 | } 49 | } 50 | 51 | public static class ListofItem 52 | { 53 | public static final String tableName1 = "Users", 54 | columnuser = "username", 55 | columnurl = "url", 56 | columnquery = "query", 57 | columnimage = "profile_pic"; 58 | public static final String tableName2 = "Downloads", 59 | columnowner = "pic_owner", 60 | columnpic = "pic"; 61 | 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Home/CameraFragment.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Home; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import lcukerd.com.instaswipe.R; 11 | 12 | /** 13 | * Created by User on 5/28/2017. 14 | */ 15 | 16 | public class CameraFragment extends Fragment { 17 | private static final String TAG = "CameraFragment"; 18 | 19 | @Nullable 20 | @Override 21 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 22 | View view = inflater.inflate(R.layout.fragment_camera, container, false); 23 | 24 | return view; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Home/HomeActivity.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Home; 2 | 3 | import android.Manifest; 4 | import android.content.Context; 5 | import android.content.pm.PackageManager; 6 | import android.os.Bundle; 7 | import android.support.design.widget.TabLayout; 8 | import android.support.v4.app.ActivityCompat; 9 | import android.support.v4.app.Fragment; 10 | import android.support.v4.app.FragmentManager; 11 | import android.support.v4.app.FragmentPagerAdapter; 12 | import android.support.v4.content.ContextCompat; 13 | import android.support.v4.view.ViewPager; 14 | import android.support.v7.app.AppCompatActivity; 15 | import android.util.Log; 16 | import android.view.Menu; 17 | import android.view.MenuItem; 18 | import android.view.View; 19 | 20 | import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; 21 | 22 | import java.util.ArrayList; 23 | import java.util.List; 24 | 25 | import lcukerd.com.instaswipe.R; 26 | import lcukerd.com.instaswipe.Utils.BottomNavigationViewHelper; 27 | 28 | 29 | public class HomeActivity extends AppCompatActivity 30 | { 31 | 32 | private static final String TAG = "HomeActivity"; 33 | private static final int ACTIVITY_NUM = 0; 34 | 35 | private Context mContext = HomeActivity.this; 36 | 37 | 38 | @Override 39 | protected void onCreate(Bundle savedInstanceState) 40 | { 41 | super.onCreate(savedInstanceState); 42 | setContentView(R.layout.activity_home); 43 | Log.d(TAG, "onCreate: starting."); 44 | setupBottomNavigationView(); 45 | setupViewPager(); 46 | } 47 | 48 | 49 | private void setupViewPager() 50 | { 51 | SectionsPagerAdapter adapter = new SectionsPagerAdapter(getSupportFragmentManager()); 52 | adapter.addFragment(new CameraFragment()); //index 0 53 | adapter.addFragment(new HomeFragment()); //index 1 54 | adapter.addFragment(new MessagesFragment()); //index 2 55 | ViewPager viewPager = (ViewPager) findViewById(R.id.container); 56 | viewPager.setVisibility(View.VISIBLE); 57 | viewPager.setAdapter(adapter); 58 | 59 | TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 60 | tabLayout.setupWithViewPager(viewPager); 61 | 62 | tabLayout.getTabAt(0).setIcon(R.drawable.ic_camera); 63 | tabLayout.getTabAt(1).setIcon(R.drawable.ic_instagram_black); 64 | tabLayout.getTabAt(2).setIcon(R.drawable.ic_arrow); 65 | } 66 | 67 | private void setupBottomNavigationView() 68 | { 69 | Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView"); 70 | BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar); 71 | BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx); 72 | BottomNavigationViewHelper.enableNavigation(mContext, this, bottomNavigationViewEx); 73 | Menu menu = bottomNavigationViewEx.getMenu(); 74 | MenuItem menuItem = menu.getItem(ACTIVITY_NUM); 75 | menuItem.setChecked(true); 76 | } 77 | 78 | public class SectionsPagerAdapter extends FragmentPagerAdapter 79 | { 80 | 81 | private static final String TAG = "SectionsPagerAdapter"; 82 | 83 | private final List mFragmentList = new ArrayList<>(); 84 | 85 | 86 | public SectionsPagerAdapter(FragmentManager fm) 87 | { 88 | super(fm); 89 | } 90 | 91 | @Override 92 | public Fragment getItem(int position) 93 | { 94 | return mFragmentList.get(position); 95 | } 96 | 97 | 98 | @Override 99 | public int getCount() 100 | { 101 | return mFragmentList.size(); 102 | } 103 | 104 | public void addFragment(Fragment fragment) 105 | { 106 | mFragmentList.add(fragment); 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Home/HomeFragment.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Home; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import lcukerd.com.instaswipe.R; 11 | 12 | /** 13 | * Created by User on 5/28/2017. 14 | */ 15 | 16 | public class HomeFragment extends Fragment { 17 | private static final String TAG = "HomeFragment"; 18 | 19 | @Nullable 20 | @Override 21 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 22 | View view = inflater.inflate(R.layout.fragment_home, container, false); 23 | 24 | return view; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Home/MessagesFragment.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Home; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import lcukerd.com.instaswipe.R; 11 | 12 | /** 13 | * Created by User on 5/28/2017. 14 | */ 15 | 16 | public class MessagesFragment extends Fragment { 17 | private static final String TAG = "MessagesFragment"; 18 | 19 | @Nullable 20 | @Override 21 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 22 | View view = inflater.inflate(R.layout.fragment_messages, container, false); 23 | 24 | return view; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Share/NextActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | package lcukerd.com.instaswipe.Share; 3 | 4 | import android.content.Intent; 5 | import android.graphics.Bitmap; 6 | import android.os.Bundle; 7 | import android.support.annotation.NonNull; 8 | import android.support.annotation.Nullable; 9 | import android.support.v7.app.AppCompatActivity; 10 | import android.util.Log; 11 | import android.view.View; 12 | import android.widget.EditText; 13 | import android.widget.ImageView; 14 | import android.widget.TextView; 15 | import android.widget.Toast; 16 | 17 | import com.google.firebase.auth.FirebaseAuth; 18 | import com.google.firebase.auth.FirebaseUser; 19 | import com.google.firebase.database.DataSnapshot; 20 | import com.google.firebase.database.DatabaseError; 21 | import com.google.firebase.database.DatabaseReference; 22 | import com.google.firebase.database.FirebaseDatabase; 23 | import com.google.firebase.database.ValueEventListener; 24 | 25 | import lcukerd.com.instaswipe.R; 26 | 27 | */ 28 | /** 29 | * Created by User on 7/24/2017. 30 | *//* 31 | 32 | 33 | public class NextActivity extends AppCompatActivity { 34 | 35 | private static final String TAG = "NextActivity"; 36 | 37 | //firebase 38 | private FirebaseAuth mAuth; 39 | private FirebaseAuth.AuthStateListener mAuthListener; 40 | private FirebaseDatabase mFirebaseDatabase; 41 | private DatabaseReference myRef; 42 | private FirebaseMethods mFirebaseMethods; 43 | 44 | //widgets 45 | private EditText mCaption; 46 | 47 | //vars 48 | private String mAppend = "file:/"; 49 | private int imageCount = 0; 50 | private String imgUrl; 51 | private Bitmap bitmap; 52 | private Intent intent; 53 | 54 | @Override 55 | protected void onCreate(@Nullable Bundle savedInstanceState) { 56 | super.onCreate(savedInstanceState); 57 | setContentView(R.layout.activity_next); 58 | mFirebaseMethods = new FirebaseMethods(NextActivity.this); 59 | mCaption = (EditText) findViewById(R.id.caption) ; 60 | 61 | setupFirebaseAuth(); 62 | 63 | ImageView backArrow = (ImageView) findViewById(R.id.ivBackArrow); 64 | backArrow.setOnClickListener(new View.OnClickListener() { 65 | @Override 66 | public void onClick(View v) { 67 | Log.d(TAG, "onClick: closing the activity"); 68 | finish(); 69 | } 70 | }); 71 | 72 | 73 | TextView share = (TextView) findViewById(R.id.tvShare); 74 | share.setOnClickListener(new View.OnClickListener() { 75 | @Override 76 | public void onClick(View v) { 77 | Log.d(TAG, "onClick: navigating to the final share screen."); 78 | //upload the image to firebase 79 | Toast.makeText(NextActivity.this, "Attempting to upload new photo", Toast.LENGTH_SHORT).show(); 80 | String caption = mCaption.getText().toString(); 81 | 82 | if(intent.hasExtra(getString(R.string.selected_image))){ 83 | imgUrl = intent.getStringExtra(getString(R.string.selected_image)); 84 | mFirebaseMethods.uploadNewPhoto(getString(R.string.new_photo), caption, imageCount, imgUrl,null); 85 | } 86 | else if(intent.hasExtra(getString(R.string.selected_bitmap))){ 87 | bitmap = (Bitmap) intent.getParcelableExtra(getString(R.string.selected_bitmap)); 88 | mFirebaseMethods.uploadNewPhoto(getString(R.string.new_photo), caption, imageCount, null,bitmap); 89 | } 90 | 91 | 92 | 93 | } 94 | }); 95 | 96 | setImage(); 97 | } 98 | 99 | private void someMethod(){ 100 | */ 101 | /* 102 | Step 1) 103 | Create a data model for Photos 104 | 105 | Step 2) 106 | Add properties to the Photo Objects (caption, date, imageUrl, photo_id, tags, user_id) 107 | 108 | Step 3) 109 | Count the number of photos that the User already has. 110 | 111 | Step 4) 112 | a) Upload the photo to Firebase Storage 113 | b) insert into 'photos' node 114 | c) insert into 'user_photos' node 115 | 116 | *//* 117 | 118 | 119 | } 120 | 121 | 122 | */ 123 | /** 124 | * gets the image url from the incoming intent and displays the chosen image 125 | *//* 126 | 127 | private void setImage(){ 128 | intent = getIntent(); 129 | ImageView image = (ImageView) findViewById(R.id.imageShare); 130 | 131 | if(intent.hasExtra(getString(R.string.selected_image))){ 132 | imgUrl = intent.getStringExtra(getString(R.string.selected_image)); 133 | Log.d(TAG, "setImage: got new image url: " + imgUrl); 134 | UniversalImageLoader.setImage(imgUrl, image, null, mAppend); 135 | } 136 | else if(intent.hasExtra(getString(R.string.selected_bitmap))){ 137 | bitmap = (Bitmap) intent.getParcelableExtra(getString(R.string.selected_bitmap)); 138 | Log.d(TAG, "setImage: got new bitmap"); 139 | image.setImageBitmap(bitmap); 140 | } 141 | } 142 | 143 | */ 144 | /* 145 | ------------------------------------ Firebase --------------------------------------------- 146 | *//* 147 | 148 | 149 | */ 150 | /** 151 | * Setup the firebase auth object 152 | *//* 153 | 154 | private void setupFirebaseAuth(){ 155 | Log.d(TAG, "setupFirebaseAuth: setting up firebase auth."); 156 | mAuth = FirebaseAuth.getInstance(); 157 | mFirebaseDatabase = FirebaseDatabase.getInstance(); 158 | myRef = mFirebaseDatabase.getReference(); 159 | Log.d(TAG, "onDataChange: image count: " + imageCount); 160 | 161 | mAuthListener = new FirebaseAuth.AuthStateListener() { 162 | @Override 163 | public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 164 | FirebaseUser User = firebaseAuth.getCurrentUser(); 165 | 166 | 167 | if (User != null) { 168 | // User is signed in 169 | Log.d(TAG, "onAuthStateChanged:signed_in:" + User.getUid()); 170 | } else { 171 | // User is signed out 172 | Log.d(TAG, "onAuthStateChanged:signed_out"); 173 | } 174 | // ... 175 | } 176 | }; 177 | 178 | 179 | myRef.addValueEventListener(new ValueEventListener() { 180 | @Override 181 | public void onDataChange(DataSnapshot dataSnapshot) { 182 | 183 | imageCount = mFirebaseMethods.getImageCount(dataSnapshot); 184 | Log.d(TAG, "onDataChange: image count: " + imageCount); 185 | 186 | } 187 | 188 | @Override 189 | public void onCancelled(DatabaseError databaseError) { 190 | 191 | } 192 | }); 193 | } 194 | 195 | 196 | @Override 197 | public void onStart() { 198 | super.onStart(); 199 | mAuth.addAuthStateListener(mAuthListener); 200 | } 201 | 202 | @Override 203 | public void onStop() { 204 | super.onStop(); 205 | if (mAuthListener != null) { 206 | mAuth.removeAuthStateListener(mAuthListener); 207 | } 208 | } 209 | } 210 | */ 211 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Share/PhotoFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | package lcukerd.com.instaswipe.Share; 3 | 4 | import android.content.Intent; 5 | import android.graphics.Bitmap; 6 | import android.os.Bundle; 7 | import android.provider.MediaStore; 8 | import android.support.annotation.Nullable; 9 | import android.support.v4.app.Fragment; 10 | import android.util.Log; 11 | import android.view.LayoutInflater; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | import android.widget.Button; 15 | 16 | import lcukerd.com.instaswipe.R; 17 | 18 | 19 | */ 20 | /** 21 | * Created by User on 5/28/2017. 22 | *//* 23 | 24 | 25 | public class PhotoFragment extends Fragment { 26 | private static final String TAG = "PhotoFragment"; 27 | 28 | //constant 29 | private static final int PHOTO_FRAGMENT_NUM = 1; 30 | private static final int GALLERY_FRAGMENT_NUM = 2; 31 | private static final int CAMERA_REQUEST_CODE = 5; 32 | 33 | 34 | @Nullable 35 | @Override 36 | public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 37 | View view = inflater.inflate(R.layout.fragment_photo, container, false); 38 | Log.d(TAG, "onCreateView: started."); 39 | 40 | Button btnLaunchCamera = (Button) view.findViewById(R.id.btnLaunchCamera); 41 | btnLaunchCamera.setOnClickListener(new View.OnClickListener() { 42 | @Override 43 | public void onClick(View v) { 44 | Log.d(TAG, "onClick: launching camera."); 45 | 46 | if(((ShareActivity)getActivity()).getCurrentTabNumber() == PHOTO_FRAGMENT_NUM){ 47 | if(((ShareActivity)getActivity()).checkPermissions(Permissions.CAMERA_PERMISSION[0])){ 48 | Log.d(TAG, "onClick: starting camera"); 49 | Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 50 | startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE); 51 | }else{ 52 | Intent intent = new Intent(getActivity(), ShareActivity.class); 53 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 54 | startActivity(intent); 55 | } 56 | } 57 | } 58 | }); 59 | 60 | return view; 61 | } 62 | 63 | private boolean isRootTask(){ 64 | if(((ShareActivity)getActivity()).getTask() == 0){ 65 | return true; 66 | } 67 | else{ 68 | return false; 69 | } 70 | } 71 | 72 | @Override 73 | public void onActivityResult(int requestCode, int resultCode, Intent data) { 74 | super.onActivityResult(requestCode, resultCode, data); 75 | 76 | if(requestCode == CAMERA_REQUEST_CODE){ 77 | Log.d(TAG, "onActivityResult: done taking a photo."); 78 | Log.d(TAG, "onActivityResult: attempting to navigate to final share screen."); 79 | 80 | Bitmap bitmap; 81 | bitmap = (Bitmap) data.getExtras().get("data"); 82 | 83 | if(isRootTask()){ 84 | try{ 85 | Log.d(TAG, "onActivityResult: received new bitmap from camera: " + bitmap); 86 | Intent intent = new Intent(getActivity(), NextActivity.class); 87 | intent.putExtra(getString(R.string.selected_bitmap), bitmap); 88 | startActivity(intent); 89 | }catch (NullPointerException e){ 90 | Log.d(TAG, "onActivityResult: NullPointerException: " + e.getMessage()); 91 | } 92 | }else{ 93 | try{ 94 | Log.d(TAG, "onActivityResult: received new bitmap from camera: " + bitmap); 95 | Intent intent = new Intent(getActivity(), AccountSettingsActivity.class); 96 | intent.putExtra(getString(R.string.selected_bitmap), bitmap); 97 | intent.putExtra(getString(R.string.return_to_fragment), getString(R.string.edit_profile_fragment)); 98 | startActivity(intent); 99 | getActivity().finish(); 100 | }catch (NullPointerException e){ 101 | Log.d(TAG, "onActivityResult: NullPointerException: " + e.getMessage()); 102 | } 103 | } 104 | 105 | } 106 | } 107 | } 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | */ 142 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Share/ShareActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | package lcukerd.com.instaswipe.Share; 3 | 4 | import android.content.Context; 5 | import android.content.pm.PackageManager; 6 | import android.os.Bundle; 7 | import android.support.annotation.Nullable; 8 | import android.support.design.widget.TabLayout; 9 | import android.support.v4.app.ActivityCompat; 10 | import android.support.v4.view.ViewPager; 11 | import android.support.v7.app.AppCompatActivity; 12 | import android.util.Log; 13 | import android.view.Menu; 14 | import android.view.MenuItem; 15 | 16 | import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; 17 | 18 | import lcukerd.com.instaswipe.R; 19 | import lcukerd.com.instaswipe.Utils.BottomNavigationViewHelper; 20 | 21 | */ 22 | /** 23 | * Created by User on 5/28/2017. 24 | *//* 25 | 26 | 27 | public class ShareActivity extends AppCompatActivity{ 28 | private static final String TAG = "ShareActivity"; 29 | 30 | //constants 31 | private static final int ACTIVITY_NUM = 2; 32 | private static final int VERIFY_PERMISSIONS_REQUEST = 1; 33 | 34 | private ViewPager mViewPager; 35 | 36 | 37 | private Context mContext = ShareActivity.this; 38 | 39 | @Override 40 | protected void onCreate(@Nullable Bundle savedInstanceState) { 41 | super.onCreate(savedInstanceState); 42 | setContentView(R.layout.activity_share); 43 | Log.d(TAG, "onCreate: started."); 44 | 45 | if(checkPermissionsArray(Permissions.PERMISSIONS)){ 46 | setupViewPager(); 47 | }else{ 48 | verifyPermissions(Permissions.PERMISSIONS); 49 | } 50 | 51 | } 52 | 53 | */ 54 | /** 55 | * return the current tab number 56 | * 0 = GalleryFragment 57 | * 1 = PhotoFragment 58 | * @return 59 | *//* 60 | 61 | public int getCurrentTabNumber(){ 62 | return mViewPager.getCurrentItem(); 63 | } 64 | 65 | */ 66 | /** 67 | * setup viewpager for manager the tabs 68 | *//* 69 | 70 | private void setupViewPager(){ 71 | SectionsPagerAdapter adapter = new SectionsPagerAdapter(getSupportFragmentManager()); 72 | //adapter.addFragment(new GalleryFragment()); 73 | adapter.addFragment(new PhotoFragment()); 74 | 75 | mViewPager = (ViewPager) findViewById(R.id.container); 76 | mViewPager.setAdapter(adapter); 77 | 78 | TabLayout tabLayout = (TabLayout) findViewById(R.id.tabsBottom); 79 | tabLayout.setupWithViewPager(mViewPager); 80 | 81 | tabLayout.getTabAt(0).setText(getString(R.string.gallery)); 82 | tabLayout.getTabAt(1).setText(getString(R.string.photo)); 83 | 84 | } 85 | 86 | public int getTask(){ 87 | Log.d(TAG, "getTask: TASK: " + getIntent().getFlags()); 88 | return getIntent().getFlags(); 89 | } 90 | 91 | */ 92 | /** 93 | * verifiy all the permissions passed to the array 94 | * @param permissions 95 | *//* 96 | 97 | public void verifyPermissions(String[] permissions){ 98 | Log.d(TAG, "verifyPermissions: verifying permissions."); 99 | 100 | ActivityCompat.requestPermissions( 101 | ShareActivity.this, 102 | permissions, 103 | VERIFY_PERMISSIONS_REQUEST 104 | ); 105 | } 106 | 107 | */ 108 | /** 109 | * Check an array of permissions 110 | * @param permissions 111 | * @return 112 | *//* 113 | 114 | public boolean checkPermissionsArray(String[] permissions){ 115 | Log.d(TAG, "checkPermissionsArray: checking permissions array."); 116 | 117 | for(int i = 0; i< permissions.length; i++){ 118 | String check = permissions[i]; 119 | if(!checkPermissions(check)){ 120 | return false; 121 | } 122 | } 123 | return true; 124 | } 125 | 126 | */ 127 | /** 128 | * Check a single permission is it has been verified 129 | * @param permission 130 | * @return 131 | *//* 132 | 133 | public boolean checkPermissions(String permission){ 134 | Log.d(TAG, "checkPermissions: checking permission: " + permission); 135 | 136 | int permissionRequest = ActivityCompat.checkSelfPermission(ShareActivity.this, permission); 137 | 138 | if(permissionRequest != PackageManager.PERMISSION_GRANTED){ 139 | Log.d(TAG, "checkPermissions: \n Permission was not granted for: " + permission); 140 | return false; 141 | } 142 | else{ 143 | Log.d(TAG, "checkPermissions: \n Permission was granted for: " + permission); 144 | return true; 145 | } 146 | } 147 | 148 | */ 149 | /** 150 | * BottomNavigationView setup 151 | *//* 152 | 153 | private void setupBottomNavigationView(){ 154 | Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView"); 155 | BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx) findViewById(R.id.bottomNavViewBar); 156 | BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx); 157 | BottomNavigationViewHelper.enableNavigation(mContext, this,bottomNavigationViewEx); 158 | Menu menu = bottomNavigationViewEx.getMenu(); 159 | MenuItem menuItem = menu.getItem(ACTIVITY_NUM); 160 | menuItem.setChecked(true); 161 | } 162 | } 163 | */ 164 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/BottomNavigationViewHelper.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.support.annotation.NonNull; 7 | import android.support.design.widget.BottomNavigationView; 8 | import android.util.Log; 9 | import android.view.MenuItem; 10 | 11 | import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx; 12 | 13 | import lcukerd.com.instaswipe.Home.HomeActivity; 14 | import lcukerd.com.instaswipe.ProfileActivity; 15 | import lcukerd.com.instaswipe.R; 16 | import lcukerd.com.instaswipe.SearchActivity; 17 | 18 | /** 19 | * Created by User on 5/28/2017. 20 | */ 21 | 22 | public class BottomNavigationViewHelper 23 | { 24 | 25 | private static final String TAG = "BottomNavigationViewHel"; 26 | 27 | public static void setupBottomNavigationView(BottomNavigationViewEx bottomNavigationViewEx) 28 | { 29 | Log.d(TAG, "setupBottomNavigationView: Setting up BottomNavigationView"); 30 | bottomNavigationViewEx.enableAnimation(false); 31 | bottomNavigationViewEx.enableItemShiftingMode(false); 32 | bottomNavigationViewEx.enableShiftingMode(false); 33 | bottomNavigationViewEx.setTextVisibility(false); 34 | } 35 | 36 | public static void enableNavigation(final Context context, final Activity callingActivity, BottomNavigationViewEx view) 37 | { 38 | view.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() 39 | { 40 | @Override 41 | public boolean onNavigationItemSelected(@NonNull MenuItem item) 42 | { 43 | switch (item.getItemId()) 44 | { 45 | 46 | case R.id.ic_house: 47 | Intent intent1 = new Intent(context, HomeActivity.class);//ACTIVITY_NUM = 0 48 | context.startActivity(intent1); 49 | callingActivity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 50 | break; 51 | 52 | case R.id.ic_search: 53 | Intent intent2 = new Intent(context, SearchActivity.class);//ACTIVITY_NUM = 1 54 | context.startActivity(intent2); 55 | callingActivity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 56 | break; 57 | 58 | /* case R.id.ic_circle: 59 | Intent intent3 = new Intent(context, ShareActivity.class);//ACTIVITY_NUM = 2 60 | context.startActivity(intent3); 61 | callingActivity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 62 | break; 63 | 64 | case R.id.ic_alert: 65 | Intent intent4 = new Intent(context, LikesActivity.class);//ACTIVITY_NUM = 3 66 | context.startActivity(intent4); 67 | callingActivity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 68 | break;*/ 69 | 70 | case R.id.ic_android: 71 | Intent intent5 = new Intent(context, ProfileActivity.class);//ACTIVITY_NUM = 4 72 | intent5.putExtra("action","downloads"); 73 | context.startActivity(intent5); 74 | callingActivity.overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 75 | break; 76 | } 77 | 78 | 79 | return false; 80 | } 81 | }); 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/FilePaths.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.os.Environment; 4 | 5 | /** 6 | * Created by User on 7/24/2017. 7 | */ 8 | 9 | public class FilePaths { 10 | 11 | //"storage/emulated/0" 12 | public String ROOT_DIR = Environment.getExternalStorageDirectory().getPath(); 13 | 14 | public String PICTURES = ROOT_DIR + "/Pictures"; 15 | public String CAMERA = ROOT_DIR + "/DCIM/camera"; 16 | 17 | public String FIREBASE_IMAGE_STORAGE = "photos/users/"; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/FileSearch.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import java.io.File; 4 | import java.util.ArrayList; 5 | 6 | /** 7 | * Created by User on 7/24/2017. 8 | */ 9 | 10 | public class FileSearch { 11 | 12 | /** 13 | * Search a directory and return a list of all **directories** contained inside 14 | * @param directory 15 | * @return 16 | */ 17 | public static ArrayList getDirectoryPaths(String directory){ 18 | ArrayList pathArray = new ArrayList<>(); 19 | File file = new File(directory); 20 | File[] listfiles = file.listFiles(); 21 | for(int i = 0; i < listfiles.length; i++){ 22 | if(listfiles[i].isDirectory()){ 23 | pathArray.add(listfiles[i].getAbsolutePath()); 24 | } 25 | } 26 | return pathArray; 27 | } 28 | 29 | /** 30 | * Search a directory and return a list of all **files** contained inside 31 | * @param directory 32 | * @return 33 | */ 34 | public static ArrayList getFilePaths(String directory){ 35 | ArrayList pathArray = new ArrayList<>(); 36 | File file = new File(directory); 37 | File[] listfiles = file.listFiles(); 38 | for(int i = 0; i < listfiles.length; i++){ 39 | if(listfiles[i].isFile()){ 40 | pathArray.add(listfiles[i].getAbsolutePath()); 41 | } 42 | } 43 | return pathArray; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/Heart.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.animation.AnimatorSet; 4 | import android.animation.ObjectAnimator; 5 | import android.util.Log; 6 | import android.view.View; 7 | import android.view.animation.AccelerateInterpolator; 8 | import android.view.animation.DecelerateInterpolator; 9 | import android.widget.ImageView; 10 | 11 | /** 12 | * Created by User on 8/21/2017. 13 | */ 14 | 15 | public class Heart { 16 | 17 | private static final String TAG = "Heart"; 18 | 19 | private static final DecelerateInterpolator DECCELERATE_INTERPOLATOR = new DecelerateInterpolator(); 20 | private static final AccelerateInterpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator(); 21 | 22 | public ImageView heartWhite, heartRed; 23 | 24 | public Heart(ImageView heartWhite, ImageView heartRed) { 25 | this.heartWhite = heartWhite; 26 | this.heartRed = heartRed; 27 | } 28 | 29 | public void toggleLike(){ 30 | Log.d(TAG, "toggleLike: toggling heart."); 31 | 32 | AnimatorSet animationSet = new AnimatorSet(); 33 | 34 | 35 | if(heartRed.getVisibility() == View.VISIBLE){ 36 | Log.d(TAG, "toggleLike: toggling red heart off."); 37 | heartRed.setScaleX(0.1f); 38 | heartRed.setScaleY(0.1f); 39 | 40 | ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(heartRed, "scaleY", 1f, 0f); 41 | scaleDownY.setDuration(300); 42 | scaleDownY.setInterpolator(ACCELERATE_INTERPOLATOR); 43 | 44 | ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(heartRed, "scaleX", 1f, 0f); 45 | scaleDownX.setDuration(300); 46 | scaleDownX.setInterpolator(ACCELERATE_INTERPOLATOR); 47 | 48 | heartRed.setVisibility(View.GONE); 49 | heartWhite.setVisibility(View.VISIBLE); 50 | 51 | animationSet.playTogether(scaleDownY, scaleDownX); 52 | } 53 | 54 | else if(heartRed.getVisibility() == View.GONE){ 55 | Log.d(TAG, "toggleLike: toggling red heart on."); 56 | heartRed.setScaleX(0.1f); 57 | heartRed.setScaleY(0.1f); 58 | 59 | ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(heartRed, "scaleY", 0.1f, 1f); 60 | scaleDownY.setDuration(300); 61 | scaleDownY.setInterpolator(DECCELERATE_INTERPOLATOR); 62 | 63 | ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(heartRed, "scaleX", 0.1f, 1f); 64 | scaleDownX.setDuration(300); 65 | scaleDownX.setInterpolator(DECCELERATE_INTERPOLATOR); 66 | 67 | heartRed.setVisibility(View.VISIBLE); 68 | heartWhite.setVisibility(View.GONE); 69 | 70 | animationSet.playTogether(scaleDownY, scaleDownX); 71 | } 72 | 73 | animationSet.start(); 74 | 75 | } 76 | } 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/ImageManager.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.BitmapFactory; 5 | import android.util.Log; 6 | 7 | import java.io.ByteArrayOutputStream; 8 | import java.io.File; 9 | import java.io.FileInputStream; 10 | import java.io.FileNotFoundException; 11 | import java.io.IOException; 12 | 13 | /** 14 | * Created by User on 7/29/2017. 15 | */ 16 | 17 | public class ImageManager { 18 | 19 | private static final String TAG = "ImageManager"; 20 | 21 | public static Bitmap getBitmap(String imgUrl){ 22 | File imageFile = new File(imgUrl); 23 | FileInputStream fis = null; 24 | Bitmap bitmap = null; 25 | try{ 26 | fis = new FileInputStream(imageFile); 27 | bitmap = BitmapFactory.decodeStream(fis); 28 | }catch (FileNotFoundException e){ 29 | Log.e(TAG, "getBitmap: FileNotFoundException: " + e.getMessage() ); 30 | }finally { 31 | try{ 32 | fis.close(); 33 | }catch (IOException e){ 34 | Log.e(TAG, "getBitmap: FileNotFoundException: " + e.getMessage() ); 35 | } 36 | } 37 | return bitmap; 38 | } 39 | 40 | /** 41 | * return byte array from a bitmap 42 | * quality is greater than 0 but less than 100 43 | * @param bm 44 | * @param quality 45 | * @return 46 | */ 47 | public static byte[] getBytesFromBitmap(Bitmap bm, int quality){ 48 | ByteArrayOutputStream stream = new ByteArrayOutputStream(); 49 | bm.compress(Bitmap.CompressFormat.JPEG, quality, stream); 50 | return stream.toByteArray(); 51 | } 52 | } 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/Scrapper.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.util.Log; 4 | 5 | import org.json.JSONArray; 6 | import org.json.JSONException; 7 | import org.json.JSONObject; 8 | 9 | import java.io.UnsupportedEncodingException; 10 | import java.net.URISyntaxException; 11 | import java.nio.charset.StandardCharsets; 12 | import java.util.ArrayList; 13 | 14 | import lcukerd.com.instaswipe.models.User; 15 | 16 | /** 17 | * Created by Programmer on 15-09-2017. 18 | */ 19 | 20 | public class Scrapper { 21 | private static final String tag = Scrapper.class.getSimpleName(); 22 | 23 | public static ArrayList getUsersfromsearch(String result) { 24 | ArrayList userArrayList = new ArrayList<>(); 25 | try { 26 | JSONObject jsonObject = new JSONObject(result); 27 | JSONArray jsonArray = jsonObject.getJSONArray("users"); 28 | for (int i = 0; i < jsonArray.length(); i++) { 29 | User u = new User(); 30 | jsonObject = jsonArray.getJSONObject(i); 31 | jsonObject = jsonObject.getJSONObject("user"); 32 | 33 | u.name = jsonObject.getString("full_name"); 34 | u.query = jsonObject.getString("username"); 35 | u.url = jsonObject.getString("profile_pic_url"); 36 | u.verfied = jsonObject.getBoolean("is_verified"); 37 | if (jsonObject.getBoolean("is_private") == true) 38 | u.isprivate = " (private)"; 39 | else 40 | u.isprivate = ""; 41 | userArrayList.add(u); 42 | } 43 | } catch (JSONException e) { 44 | Log.e(tag, "Error in Json " + result); 45 | } 46 | return userArrayList; 47 | } 48 | 49 | public static String getUsername(String result) { 50 | int start = result.indexOf("", result.indexOf("", start); 172 | String videoUrl = result.substring(start, end); 173 | Log.i(tag, "Video Url " + videoUrl); 174 | return videoUrl; 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/SquareImageView.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.AppCompatImageView; 5 | import android.util.AttributeSet; 6 | 7 | /** 8 | * Created by User on 6/4/2017. 9 | */ 10 | 11 | public class SquareImageView extends AppCompatImageView { 12 | 13 | public SquareImageView(Context context) { 14 | super(context); 15 | } 16 | 17 | public SquareImageView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | } 20 | 21 | public SquareImageView(Context context, AttributeSet attrs, int defStyleAttr) { 22 | super(context, attrs, defStyleAttr); 23 | } 24 | 25 | @Override 26 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 27 | super.onMeasure(widthMeasureSpec, widthMeasureSpec); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/Utils/loadImage.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.Utils; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.graphics.Bitmap; 6 | import android.os.AsyncTask; 7 | import android.widget.ImageView; 8 | 9 | import com.github.chrisbanes.photoview.PhotoView; 10 | 11 | import java.util.HashMap; 12 | import java.util.Map; 13 | 14 | import lcukerd.com.instaswipe.Database.DbInteract; 15 | 16 | /** 17 | * Created by Programmer on 21-10-2017. 18 | */ 19 | 20 | public class loadImage extends AsyncTask 21 | { 22 | private Map downloads = new HashMap<>(); 23 | private DbInteract interact; 24 | private ImageView pic; 25 | private int type; 26 | 27 | protected loadImage(Context context,Map download,ImageView pic,int type) 28 | { 29 | interact = new DbInteract(context); 30 | this.downloads = download; 31 | this.pic = pic; 32 | this.type = type; 33 | } 34 | 35 | @Override 36 | protected Bitmap doInBackground(Integer... params) 37 | { 38 | if (downloads.get(params[0]) != null) 39 | return downloads.get(params[0]); 40 | else 41 | { 42 | Bitmap image = interact.getDownloadedpics(params[0]); 43 | if (type==0) 44 | image = Bitmap.createScaledBitmap(image,(int)(360*((float)image.getWidth()/(float) image.getHeight())),360,false); 45 | downloads.put(params[0],image); 46 | return image; 47 | } 48 | } 49 | 50 | @Override 51 | protected void onPostExecute(Bitmap bitmap) 52 | { 53 | super.onPostExecute(bitmap); 54 | pic.setImageBitmap(bitmap); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/models/AccountDetails.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.models; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | /** 6 | * Created by User on 6/29/2017. 7 | */ 8 | 9 | public class AccountDetails 10 | { 11 | 12 | private String followers; 13 | private String following; 14 | private String posts; 15 | private Bitmap profile_photo; 16 | private String username; 17 | 18 | public AccountDetails(String followers, 19 | String following, String posts, Bitmap profile_photo, String username) 20 | { 21 | this.followers = followers; 22 | this.following = following; 23 | this.posts = posts; 24 | this.profile_photo = profile_photo; 25 | this.username = username; 26 | } 27 | 28 | public AccountDetails() 29 | { 30 | 31 | } 32 | 33 | public String getFollowers() 34 | { 35 | return followers; 36 | } 37 | 38 | public void setFollowers(String followers) 39 | { 40 | this.followers = followers; 41 | } 42 | 43 | public String getFollowing() 44 | { 45 | return following; 46 | } 47 | 48 | public void setFollowing(String following) 49 | { 50 | this.following = following; 51 | } 52 | 53 | public String getPosts() 54 | { 55 | return posts; 56 | } 57 | 58 | public void setPosts(String posts) 59 | { 60 | this.posts = posts; 61 | } 62 | 63 | public String getUsername() 64 | { 65 | return username; 66 | } 67 | 68 | public void setUsername(String username) 69 | { 70 | this.username = username; 71 | } 72 | 73 | public Bitmap getProfile_photo() 74 | { 75 | return profile_photo; 76 | } 77 | 78 | public void setProfile_photo(Bitmap image) 79 | { 80 | this.profile_photo = image; 81 | } 82 | 83 | 84 | @Override 85 | public String toString() 86 | { 87 | return "AccountDetails{" + 88 | ", followers=" + followers + 89 | ", following=" + following + 90 | ", posts=" + posts + 91 | ", profile_photo='" + profile_photo + '\'' + 92 | ", username='" + username + '\'' + 93 | '}'; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /app/src/main/java/lcukerd/com/instaswipe/models/User.java: -------------------------------------------------------------------------------- 1 | package lcukerd.com.instaswipe.models; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | 6 | /** 7 | * Created by Programmer on 14-09-2017. 8 | */ 9 | 10 | public class User 11 | { 12 | public Bitmap profile; 13 | public String name; 14 | public String url; 15 | public String query; 16 | public String isprivate; 17 | public boolean verfied = false; 18 | 19 | public User() 20 | {} 21 | 22 | public User(Bitmap p, String n, String u, String q) 23 | { 24 | profile = p; 25 | name = n; 26 | url = u; 27 | query = q; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/black_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 14 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/et_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/grey_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 14 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_action_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_alert.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_arrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_backarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_backarrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_black_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_black_x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_camera.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_checkmark.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_display_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_display_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_ellipses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_ellipses.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_email.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_heart_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_heart_outline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_house.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_instagram_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_instagram_black.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_phone.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_play_for_work_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_play_for_work_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_speech_bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_speech_bubble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_username.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_videocam_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_videocam_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-hdpi/ic_web.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_action_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_alert.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_arrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_backarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_backarrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_black_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_black_x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_camera.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_checkmark.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_display_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_display_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_ellipses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_ellipses.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_email.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_heart_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_heart_outline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_house.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_instagram_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_instagram_black.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_phone.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_play_for_work_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_play_for_work_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_speech_bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_speech_bubble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_username.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_videocam_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_videocam_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-mdpi/ic_web.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_action_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_alert.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_arrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_backarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_backarrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_black_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_black_x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_camera.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_checkmark.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_display_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_display_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_ellipses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_ellipses.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_email.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_heart_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_heart_outline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_house.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_instagram_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_instagram_black.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_phone.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_play_for_work_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_play_for_work_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_speech_bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_speech_bubble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_username.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_videocam_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_videocam_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xhdpi/ic_web.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_action_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_alert.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_arrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_backarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_backarrow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_black_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_black_x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_camera.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_checkmark.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_description.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_display_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_display_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_ellipses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_ellipses.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_email.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_heart_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_heart_outline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_heart_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_house.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_instagram_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_instagram_black.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_phone.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_for_work_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_play_for_work_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_speech_bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_speech_bubble.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_username.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_videocam_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_videocam_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxhdpi/ic_web.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/vector_heart_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_play_for_work_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxxhdpi/ic_play_for_work_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_videocam_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable-xxxhdpi/ic_videocam_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable/Thumbs.db -------------------------------------------------------------------------------- /app/src/main/res/drawable/grey_border_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_heart_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/instagram_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable/instagram_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/instaicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lcukerd/InstaSwipe/67b7e57e6cc3e48b7efb1fd05754cfc3d76daba9/app/src/main/res/drawable/instaicon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/vector_heart_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/white_grey_border_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 14 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/white_grey_border_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 14 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/white_rounded_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 12 | 14 | 15 | 16 | 17 | 18 | 20 | 23 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/actionbuttons.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 |