Skip to content
This repository has been archived by the owner. It is now read-only.
It makes a preview from an url, grabbing all the information such as title, relevant texts and images. This a version for Android of my web link preview https://github.com/LeonardoCardoso/Link-Preview
Java
Branch: master
Clone or download
LeonardoCardoso Merge pull request #33 from jdonmoyer/master
Add ability for library users to specify how to extract URLs from the…
Latest commit 05ecd17 Sep 13, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Update to latest Android Gradle build plugin and to build sample app … Aug 28, 2018
gradle/wrapper Update to build with latest Android Studio Jul 18, 2018
images
library Add logic to unshortenUrl that prevents an infinite loop when a page … Sep 12, 2018
web-files
.gitignore Create LICENSE Aug 10, 2014
LICENSE Create LICENSE Aug 10, 2014
LinkPreview.iml Project Moved to Android Studio Jul 27, 2014
README.md Bump to Version 2.0.0 Aug 17, 2017
build.gradle Update to latest Android Gradle build plugin and to build sample app … Aug 28, 2018
gradle.properties Project Moved to Android Studio Jul 27, 2014
gradlew
gradlew.bat Project Moved to Android Studio Jul 27, 2014
settings.gradle Project Moved to Android Studio Jul 27, 2014

README.md

LeoCardz Link Preview for Android

Android Arsenal

It makes a preview from an url, grabbing all the information such as title, relevant texts and images.

Visual Examples

Preview

Sample App

For a sample app, please install it from Android Link Preview on Google Play.

Requirements

  • jsoup is a smart lib to get the html code.

Installation

gradle

Simply add the repository to your build.gradle file:

repositories {
	jcenter()
	maven { url 'https://github.com/leonardocardoso/mvn-repo/raw/master/maven-deploy' }
}

And you can use the artifacts like this:

dependencies {
    compile 'org.jsoup:jsoup:1.8.3' // required
	compile 'com.leocardz:link-preview:2.0.0@aar'
	// ...
}

ProGuard

If you use ProGuard, it is advised that you keep the jsoup dependencies by adding

-keeppackagenames org.jsoup.nodes

to your ProGuard rules file.

Usage

Instantiating

import com.leocardz.link.preview.library.TextCrawler;
// ...
// Create an instance of the TextCrawler to parse your url into a preview.
TextCrawler textCrawler = new TextCrawler();

// ..

// Create the callbacks to handle pre and post exicution of the preview generation.
LinkPreviewCallback linkPreviewCallback = new LinkPreviewCallback() {
    @Override
    public void onPre() {
        // Any work that needs to be done before generating the preview. Usually inflate 
        // your custom preview layout here.
    }

    @Override
    public void onPos(SourceContent sourceContent, boolean b) {
        // Populate your preview layout with the results of sourceContent.
    }
};

Generate Preview

textCrawler.makePreview( linkPreviewCallback, url);

Cancel unfinished tasks when views are destroied.

If you are using Android Link Preview inside of an Activity, it is important to cancel unfinished Preview activites at the end of the Activity's lifecycle.

 @Override
    protected void onDestroy() {
        super.onDestroy();
        textCrawler.cancel();
    }

Apps using Android Link Preview

  1. Unshorten It

  2. ...

Information and Contact

Developed by @LeonardoCardoso.

Contact me either by Twitter @leocardz or emailing me to contact@leocardz.com.

Related Projects

License

Copyright 2013 Leonardo Cardoso

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.
You can’t perform that action at this time.