/*
 * Android SDK for Piwik
 *
 * @link https://github.com/piwik/piwik-android-sdk
 * @license https://github.com/piwik/piwik-sdk-android/blob/master/LICENSE BSD-3 Clause
 */

package org.piwik.sdk;

import android.app.Application;
import android.util.Log;

import java.net.MalformedURLException;

public abstract class PiwikApplication extends Application {
    Tracker piwikTracker;

    public Piwik getPiwik(){
        return Piwik.getInstance(this);
    }

    public Tracker getTracker() {
        if (piwikTracker != null) {
            return piwikTracker;
        }

        try {
            piwikTracker = getPiwik().newTracker(getTrackerUrl(), getSiteId(), getAuthToken());
        } catch (MalformedURLException e) {
            Log.i(Tracker.LOGGER_TAG, getTrackerUrl());
            Log.w(Tracker.LOGGER_TAG, "url is malformed", e);
            return null;
        }

        return piwikTracker;

    }

    public String getTrackerUrl() {
        return "";
    }

    public Integer getSiteId() {
        return 1;
    }

    @Deprecated
    public String getAuthToken() {
        return null;
    }

}

@@ -917,32 +917,41 @@
   %7D%0A%0A    public 
+abstract 
 String getTracke
@@ -960,35 +960,9 @@
 rl()
- %7B%0A        return %22%22;%0A    %7D
+;
 %0A%0A  
@@ -970,16 +970,25 @@
  public 
+abstract 
 Integer 
@@ -1002,34 +1002,9 @@
 Id()
- %7B%0A        return 1;%0A    %7D
+;
 %0A%0A  

Make methods abstract to force the dev to implement these correctly (it won't work otherwise anyways).