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

Implementation of a TextView and all its direct/indirect subclasses with native support for the Roboto fonts, includes the brand new Roboto Slab fonts.

Gradle port of Google's SlidingTabLayout to display a custom ViewPager title strip as used in Google I/O Android App, Android SlidingTabsBasic Sample, and Android SlidingTabsColors Sample. It has minor modifications to work from SDK 8

Android's EditText widget supports formatted (a.k.a., "rich text") editing. It just lacks any way for the user to supply formatting, and it does not provide much in the way of convenience methods for a developer to, say, tie in some sort of toolbar to allow users to format selections.

That's where RichEditText comes in.

RichEditText is a drop-in replacement for EditText that:

  • Provides an action mode on Android 4.0+ that allows users to format selected pieces of text
  • Provides convenience methods to allow developers to trigger formatting for selected text via other means

A facade between executing requests and creating them. The library provides an interface for creating requests, but delegates the actual execution to RequestExecutors. It also generates REST services for you using annotation processing.

The fastest view-injection Android library that populates View Holders. Using annotation processing, this library generates findViewById(), saves code by connecting view-related methods to your views without need to findViewById and then setOnClickListener, and some other smart features that make it amazingly easy to use.

A sample android starter project to demonstrate the integration of the following tools:

  • Automation: Gradle
  • Testing: Android Testing Framework, Robotium, Roboelectric (JUnit, Android)
  • Continuous Integration: TravisCI

Sample Tasks:

  • Adding testing-only project dependencies
  • Using square spoon to run integraton tests
  • Writing android tests with robotium
  • Writing junit tests with robolectric
  • Android tests can be run with only Robotium use "gradle connectedAndroidTest"
  • Android tests can be run with Robotium and Spoon "gradle spoon"
  • Robolectric junit tests can be run with "gradle clean test"

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