Android App Shortcuts


Source link: https://github.com/michelelacorte/AndroidAppShortcuts

Shortcuts for Android on Pre Nougat 7.1!


WHAT IS ANDROID SHORTCUTS?

The Android App Shortcuts Library have features of Android 7.1 Nougat, you can implement in your launcher shortcuts starting from API 14! With new communication all developers will only implement shortcuts layout (this library), then it's up to developer to implement their own shortcuts, like Google!!! In version 1.4.0 library can get shortcuts from app which have API 25 and Static or Dynamic shortcuts implementation I have also implemented Force Touch and YOU CAN USE ON CUSTOM LAUNCHER WITH SHORTCUTS!!

DONATIONS

This project needs you! If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, feel free to donate. Your donation is highly appreciated (and I love food, coffee and beer). Thank you!

PayPal

  • Donate $5: Thank's for creating this project, here's a coffee (or some beer) for you!

  • Donate $10: Wow, I am stunned. Let me take you to the movies!ù

  • Donate $15: I really appreciate your work, let's grab some lunch!

  • Donate $25: That's some awesome stuff you did right there, dinner is on me!

  • Donate $50: I really really want to support this project, great job!

  • Donate $100: You are the man! This project saved me hours (if not days) of struggle and hard work, simply awesome!

  • Donate $2799: Go buddy, buy Macbook Pro for yourself!

Of course, you can also choose what you want to donate, all donations are awesome!! Follow this link Donate!!

If you want to contribute you may download Donation App from Google Play

# v2.0.0 Preview

v1.4.0 Preview

v1.3.0 Preview Click Here

Click Here

v1.2.0 Preview Click Here

v1.1.0 Preview Click Here

v1.0.0 Preview Click Here

v0.2.0 Preview Click Here

APP EXAMPLE

Android Shortcuts is on Google Play!!!

If you want to help me please download Donation App!!

Or scan QR Code

USAGE

Add this to build.gradle

allprojects {

  repositories {

jcenter()

maven {
 url "https://jitpack.io" 
}

  
}
 
}

Than add this dependencies

compile 'com.github.michelelacorte:AndroidAppShortcuts:2.0.0'

DOCUMENTATION

Coming soon with Force Touch implementation

SYSTEM REQUIREMENT

Android API 14+

STATUS

CHANGELOG

v2.0.0

  • New App version 2.0 with library and dependencies update and bug fix.
  • Fully support to Launcher3 (dock and folder shortcuts!) with circluar icon, now support device screen resolution:
    • 1440x2560 (Portrait).
    • 1080x1920 (Portrait).
    • 720x1280 (Portrait).
  • Improved layout of 720x1280 resolution.
  • Added class ShortcutsBuilder for create shortcuts with builder constructor.
  • Update class Utils
    • Added static Bitmap getRoundedBitmapForLauncher3 to get circular icon (shortcuts on launcher)
    • Added static int getScreenXDimension to get screen X.
  • Update class StyleOption
    • Added NONE option for delete menù at right of shortcuts.
  • Added OnLongClickListener on shortcuts to create shortcuts icon on launcher.
  • General bug fix and improvement.

v1.4.0

  • Fully support to API 25 App Shortcuts, now app can use Google implementation method!!!
  • New App version 1.4 with some fix, background changed to bring out the Shortcuts.
  • Fixed onShortcutsOptionClickListener, now remove view parent on click.
  • Update class RemoteShortcuts
    • Added static method ArrayList<Shortcuts> getRemoteShortcutsOnAPI25(Activity activity, String targetPackageName, int uid) throws Exception this method get shortcuts defined in API 25, with Google SDK.
    • Update static void saveRemoteShortcuts(Activity activity, ArrayList<Shortcuts> listOfShortcuts) removed unecessary packageName string from method.
  • Update class Shortcuts
    • Added constructor for API 25 Shortcuts(Bitmap shortcutsImage, Bitmap shortcutsImageBadge, String shortcutsText, String targetClass, String targetPackage, int rank).
    • Added getter (API 25) Bitmap getShortcutsImageBadgeBitmap().
    • Added getter (API 25) int getRank().
    • Increase MAX_CHAR_SHORTCUTS from 16 to 20.
  • Update class Utils
    • Added method (API 25) static Bitmap getRoundedBitmapForAPI25(Bitmap bitmap, Drawable packageImage) for get launcher icon with badge and shadow.
  • Fixed some method issue.
  • Update buildToolsVersion and dependencies

v1.3.0

  • New App version 1.3
  • Added dynamic colored of shortcuts icon!
  • Update icon in launcher when create shortcuts, Nougat style! See
  • Fixed numbers of shortcuts at 5
  • Fixed layout issue with numbers of shortcuts >= 2 :
    • 1440x2560 (Portrait).
    • 1080x1920 (Portrait).
    • 720x1280 (Portrait).
  • Update ShortcutsCreation class, introduced:
    • static void setPackageImage(Drawable packageImage) to set package image and create bitmap on launcher shortcuts icon like image above.

v1.2.0

  • Update class ShortcutsCreation layout bug fixed, now support device screen resolution:
    • 1440x2560 (Portrait).
    • 1080x1920 (Portrait).
    • 720x1280 (Portrait).
  • New App version 1.2
  • Fixed layout with no toolbar padding.
  • Fixed shortcuts constructor with Bitmap (remote shortcuts).
  • Fixed mShortcutsOptions click listener, now auto-convert resource into bitmap and create launcher shortcuts with icon.
  • Added class StyleOption, contains static int for menù option layout.
  • Added 1 style right menù of shortcuts (see int optionLayoutStyle or StyleOption class).
  • Code style improvement by codacy.
  • Fixed crash on Example App when click outside of GridView.
  • Fixed crash when OnShortcutsOptionClickListener isn't defined (local shortcuts mode).

v1.1.0

  • Deprecate AIDL communication, not suited to the needs, replaced with simple file data.
  • Improved Example App, new version 1.1.
  • Improved Shortcuts view, fixed bug.
  • Added class RemoteShortcuts
    • Method static void saveRemoteShortcuts(Activity activity, String packageName, ArrayList<Shortcuts> listOfShortcuts) for save shortcuts and make accessible on library.
    • Method static ArrayList<Shortcuts> getRemoteShortcuts(Activity activity, String packageName) to get shortcuts from library.
    • Method static void checkPermission(Activity activity) for check WRITE_EXTERNAL_STORAGE permission on Android M and above.
    • Method static void requestPermission(Activity activity) for request permission to user.
  • Update class Shortcuts
    • Added constructor Shortcuts(Bitmap shortcutsImage, String shortcutsText)
    • Added constructor Shortcuts(int shortcutsImage, String shortcutsText, String targetClass, String targetPackage) only for remote use.
    • Added constructor Shortcuts(Bitmap shortcutsImage, String shortcutsText, String targetClass, String targetPackage) only for remote use.
    • Added constructor Shortcuts(int shortcutsImage, String shortcutsText, View.OnClickListener onShortcutsClickListener, View.OnClickListener onShortcutsOptionClickListener)
    • Added getter View.OnClickListener getOnShortcutsOptionClickListener()
    • Added getter Bitmap getShortcutsImageBitmap()
    • Added getter String getTargetPackage()
    • Added getter String getTargetClass()
  • Update class Utils
    • Added method static void createShortcutsOnLauncher(Activity activity, Bitmap shortcutsImage, String shortcutsText, String className, String packageName) for create shortcuts when user click on right menù (option menù)

v1.0.0

  • Improved Example App, soon relased on Google Play
  • Added class ShortcutsService that create remote connection and use AIDL to communicate with launcher, soon all developers will only implement shortcuts layout, then it's up to developer to implement their own shortcuts, like google!!!
  • Improved animation, almost equal to the Pixels Launcher.
  • Added 2 style right menù of shortcuts (see int optionLayoutStyle)
  • Added click shadow on shortcuts.
  • Added AIDL interface IRemoteShortcutClickListener
    • Method void onShortcutsClickListener() when user click on shortcuts
    • Method void onShortcutsOptionClickListener() when user click on right menù
  • Added AIDL interface IRemoteShortcutService
    • Method void addShortcutsWithRemoteClickListener(int shortcutsImage, String shortcutsText, IRemoteShortcutClickListener onShortcutsClickListener)
    • Method void addShortcuts(int shortcutsImage, String shortcutsText)
    • Method List<Shortcuts> getShortcuts()
  • Added AIDL interface Shortcuts provide parcelable Shortcuts
  • Added class RemoteServiceConnection
    • Public constructor RemoteServiceConnection(Activity activity, List<Shortcuts> shortcuts)
    • Public constructor RemoteServiceConnection(Activity activity, Shortcuts... shortcuts)
    • Public method boolean connectServiceAndVerifyConnection(RemoteServiceConnection serviceConnection) to bind service and return boolean to check if is connected.
    • Public method void connectService(RemoteServiceConnection serviceConnection) to bind service.
    • Public method IRemoteShortcutService getService() to retreive service.
  • Added class ShortcutsService to create service
  • Update class Shortcuts
    • Added constructor Shortcuts(int shortcutsImage, String shortcutsText, final IRemoteShortcutClickListener onIRemoteShortcutsClickListener)
    • Added method int getShortcutsImage()
    • Added method String getShortcutsText()
    • Added method IRemoteShortcutClickListener getOnIRemoteShortcutsClickListener()
    • Added method View.OnClickListener getOnShortcutsClickListener()
    • Update class to Parcelable for AIDL communication.
  • Update class ShortcutsCreation
    • Added private method void createShortcutsBasedOnGridSize(int currentXPosition, int currentYPosition, int rowHeight, GridSize gridSize, List<Shortcuts> shortcuts)
    • Update method void createShortcutsBasedOnGridSize(int currentXPosition, int currentYPosition, int rowHeight, GridSize gridSize, int optionLayoutStyle, List<Shortcuts> shortcuts)
    • Update method void createShortcutsBasedOnGridSize(int currentXPosition, int currentYPosition, int rowHeight, GridSize gridSize, int optionLayoutStyle, final Shortcuts... shortcuts)
    • Improved method getPositionInGrid()

v0.2.0

  • Improved Animation enter/exit on Shortcuts (See Preview)
  • Update ShortcutsCreation class, now support all grid size!! (Tested major grid size Column x Row: 4x5, 4x4, 5x5, 5x4)
  • Added class Utils
    • Public method GridSize getGridSize(AdapterView gridView)
    • Public method int getToolbarHeight(Activity activity) moved from ShortcutsCreation
  • Added class GridSize
    • Public constructor GridSize(int nColumn, int nRow)
    • Public method int getRowCount()
    • Public method int getColumnCount()
  • Update ShortcutsCreation, added param int rowHeight to constructor
  • Update ShortcutsCreation class
    • Added constructor ShortcutsCreation(Activity activity, ViewGroup masterLayout, GridView gridView)
    • Added private method boolean isClickOnItem(int currentXPosition, int currentYPosition, GridSize gridSize)
  • Deleted ResizeAnimation class
  • Bug fix and code improvement

v0.1.0

  • Support API 14+ (API 25 Compatible)
  • Added params ShorcutsCreation class for initialize gridView and parentLayout
    • Public constructor ShortcutsCreation(Activity activity, ViewGroup masterLayout, AdapterView gridView)
    • Public method to create shortctus void createShortcuts(int currentXPosition, int currentYPosition, Shortcuts... shortcuts)
    • Public method to clear layout void clearAllLayout()
    • Private method int getToolbarHeight(Context context)
    • Private method void getScreenDimension()
    • Private method int getPositionInGrid(int currentXPosition, int currentYPosition, AdapterView gridView)
  • Added Shortcuts class for create your custom shortcuts!!
    • Public constructor with params Shortcuts(int shortcutsImage, String shortcutsText, View.OnClickListener onShortcutsClickListener)
    • Public constructor with params Shortcuts(int shortcutsImage, String shortcutsText)
    • Public method void init(View layout) do not use this, it's just to initialize shortcuts in ShortcutsCreation class
  • Added ResizeAnimation class to make transition
    • Public constructor ResizeAnimation(View v, float fromWidth, float fromHeight, float toWidth, float toHeight)
    • Protected method applyTransformation(float interpolatedTime, Transformation t)

CREDITS

Author: Michele Lacorte ( [email protected])

Follow my Google+

CONTRIBUTING

If you want to contribute to the project fork it and open Pull Request, or contact me by e-mail.

Each proposal will be accepted!

LICENSE

Copyright 2016 Michele Lacorte  Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 

Support on Beerpay

Hey dude! Help me out for a couple of 🍻!

Resources

Dexter is an Android library that simplifies the process of requesting permissions at runtime.

android-utils contains a lot of useful utility classes for Android development.

Character picker view.

A simple, yet powerful wrapper around the SupportMapFragment with support for clustering and built-in support for querying and rendering a Realm results.

A simple and powerful EditText and RecyclerView UI component. It's build on top of RealmRecyclerView and RealmBasedRecyclerViewAdapter.

Aligned is a tiny library for Android that makes putting text on baseline infinitely easier.

Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes