navasmdc / PhoneTutorial

Make simple and beautiful tutorials start for your applications
Apache License 2.0
79 stars 39 forks source link

How can make tutorial runs once when application open for first time after install? #4

Open deathprogrammer opened 9 years ago

deathprogrammer commented 9 years ago

In PhoneTutorial library each time the user runs the application, tutorial will be displayed. How can I make it so that only the first time the application runs, it see?

TurKurT656 commented 9 years ago

@deathprogrammer You Can simply use SharedPrefrences Class and define a boolean to learn first run of application.

AizazZaidee commented 9 years ago

import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; import java.util.UUID;

import android.content.Context;

public class Util { 
    // =========================================================== 
    // 
    // =========================================================== 

    private static final String INSTALLATION = "INSTALLATION";

    public synchronized static boolean isFirstLaunch(Context context) {
        String sID = null;
        boolean launchFlag = false;
        if (sID == null) {
            File installation = new File(context.getFilesDir(), INSTALLATION);
            try { 
                if (!installation.exists()) {
                launchFlag = true;                          
                    writeInstallationFile(installation);
                } 
                sID = readInstallationFile(installation);

            } catch (Exception e) {
                throw new RuntimeException(e);
            } 
        } 
        return launchFlag;
    } 

    private static String readInstallationFile(File installation) throws IOException {
        RandomAccessFile f = new RandomAccessFile(installation, "r");// read only mode
        byte[] bytes = new byte[(int) f.length()];
        f.readFully(bytes);
        f.close();

        return new String(bytes);
    } 

    private static void writeInstallationFile(File installation) throws IOException {
        FileOutputStream out = new FileOutputStream(installation);
        String id = UUID.randomUUID().toString();
        out.write(id.getBytes());
        out.close();
    } 
} 

Usage (in class extending android.app.Activity)

Util.isFirstLaunch(this);

http://stackoverflow.com/questions/7217578/check-if-application-is-on-its-first-run/17668882#17668882