Created core package for storing callback classes
This commit is contained in:
parent
072639b5b2
commit
984454bf43
83
app/core/build.gradle
Normal file
83
app/core/build.gradle
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath 'com.android.tools.build:gradle:0.12.2'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
apply plugin: 'android-library'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
compile 'com.android.support:support-v4:20.0.0'
|
||||||
|
compile 'com.android.support:appcompat-v7:20.0.0'
|
||||||
|
compile 'org.apache.commons:commons-lang3:3.3.2'
|
||||||
|
compile ('org.shredzone.flattr4j:flattr4j-core:2.10') {
|
||||||
|
exclude group: 'org.apache.httpcomponents', module: 'httpcore'
|
||||||
|
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
|
||||||
|
exclude group: 'org.json', module: 'json'
|
||||||
|
}
|
||||||
|
compile 'commons-io:commons-io:2.4'
|
||||||
|
compile 'com.nineoldandroids:library:2.4.0'
|
||||||
|
compile project('dslv:library')
|
||||||
|
|
||||||
|
compile 'com.jayway.android.robotium:robotium-solo:5.2.1'
|
||||||
|
compile ("com.doomonafireball.betterpickers:library:1.5.2") {
|
||||||
|
exclude group: 'com.android.support', module: 'support-v4'
|
||||||
|
}
|
||||||
|
compile 'org.jsoup:jsoup:1.7.3'
|
||||||
|
compile 'com.squareup.picasso:picasso:2.3.4'
|
||||||
|
compile 'com.squareup.okhttp:okhttp:2.0.0'
|
||||||
|
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
|
||||||
|
compile 'com.squareup.okio:okio:1.0.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion 19
|
||||||
|
buildToolsVersion "20.0"
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion 10
|
||||||
|
targetSdkVersion 19
|
||||||
|
testApplicationId "de.test.antennapod"
|
||||||
|
testInstrumentationRunner "de.test.antennapod.AntennaPodTestRunner"
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
def STRING = "String"
|
||||||
|
def FLATTR_APP_KEY = "FLATTR_APP_KEY"
|
||||||
|
def FLATTR_APP_SECRET = "FLATTR_APP_SECRET"
|
||||||
|
def mFlattrAppKey = (project.hasProperty('flattrAppKey')) ? flattrAppKey : "\"\""
|
||||||
|
def mFlattrAppSecret = (project.hasProperty('flattrAppSecret')) ? flattrAppSecret : "\"\""
|
||||||
|
|
||||||
|
debug {
|
||||||
|
applicationIdSuffix ".debug"
|
||||||
|
buildConfigField STRING, FLATTR_APP_KEY, mFlattrAppKey
|
||||||
|
buildConfigField STRING, FLATTR_APP_SECRET, mFlattrAppSecret
|
||||||
|
}
|
||||||
|
release {
|
||||||
|
runProguard true
|
||||||
|
proguardFile 'proguard.cfg'
|
||||||
|
signingConfig signingConfigs.releaseConfig
|
||||||
|
buildConfigField STRING, FLATTR_APP_KEY, mFlattrAppKey
|
||||||
|
buildConfigField STRING, FLATTR_APP_SECRET, mFlattrAppSecret
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
packagingOptions {
|
||||||
|
exclude 'META-INF/LICENSE.txt'
|
||||||
|
exclude 'META-INF/NOTICE.txt'
|
||||||
|
}
|
||||||
|
|
||||||
|
lintOptions {
|
||||||
|
abortOnError false
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_7
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_7
|
||||||
|
}
|
||||||
|
}
|
@ -23,7 +23,6 @@ import java.io.*;
|
|||||||
* Lets the user start the OPML-import process from a path
|
* Lets the user start the OPML-import process from a path
|
||||||
*/
|
*/
|
||||||
public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
|
public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
|
||||||
public static final String IMPORT_DIR = "import/";
|
|
||||||
private static final String TAG = "OpmlImportFromPathActivity";
|
private static final String TAG = "OpmlImportFromPathActivity";
|
||||||
private TextView txtvPath;
|
private TextView txtvPath;
|
||||||
private Button butStart;
|
private Button butStart;
|
||||||
@ -61,7 +60,7 @@ public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
|
|||||||
* directory.
|
* directory.
|
||||||
*/
|
*/
|
||||||
private void setImportPath() {
|
private void setImportPath() {
|
||||||
File importDir = UserPreferences.getDataFolder(this, IMPORT_DIR);
|
File importDir = UserPreferences.getDataFolder(this, UserPreferences.IMPORT_DIR);
|
||||||
boolean success = true;
|
boolean success = true;
|
||||||
if (!importDir.exists()) {
|
if (!importDir.exists()) {
|
||||||
if (BuildConfig.DEBUG)
|
if (BuildConfig.DEBUG)
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package de.danoeh.antennapod.core;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores callbacks for core classes like Services, DB classes etc. and other configuration variables.
|
||||||
|
* Apps using the core module of AntennaPod should register implementations of all interfaces here.
|
||||||
|
*/
|
||||||
|
public class ClientConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Package name of the client. This string is used as a prefix
|
||||||
|
* for internal intents.
|
||||||
|
*/
|
||||||
|
public static String CLIENT_PACKAGE_NAME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should be used when setting User-Agent header for HTTP-requests.
|
||||||
|
*/
|
||||||
|
public static String USER_AGENT;
|
||||||
|
|
||||||
|
public static DownloadServiceCallbacks downloadServiceCallbacks;
|
||||||
|
|
||||||
|
public static PlaybackServiceCallbacks playbackServiceCallbacks;
|
||||||
|
|
||||||
|
public static GpodnetCallbacks gpodnetCallbacks;
|
||||||
|
|
||||||
|
public static StorageCallbacks storageCallbacks;
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package de.danoeh.antennapod.core;
|
||||||
|
|
||||||
|
import android.app.PendingIntent;
|
||||||
|
|
||||||
|
import de.danoeh.antennapod.service.download.DownloadRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callbacks for the DownloadService of the core module
|
||||||
|
*/
|
||||||
|
public interface DownloadServiceCallbacks {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a PendingIntent for a notification the main notification of the DownloadService.
|
||||||
|
* <p/>
|
||||||
|
* The PendingIntent takes the users to a screen where they can observe all currently running
|
||||||
|
* downloads.
|
||||||
|
*
|
||||||
|
* @return A non-null PendingIntent for the notification.
|
||||||
|
*/
|
||||||
|
public PendingIntent getNotificationContentIntent();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a PendingIntent for a notification that tells the user to enter a username
|
||||||
|
* or a password for a requested download.
|
||||||
|
* <p/>
|
||||||
|
* The PendingIntent takes users to an Activity that lets the user enter their username
|
||||||
|
* and password to retry the download.
|
||||||
|
*
|
||||||
|
* @return A non-null PendingIntent for the notification.
|
||||||
|
*/
|
||||||
|
public PendingIntent getAuthentificationNotificationContentIntent(DownloadRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a PendingIntent for notification that notifies the user about the completion of downloads
|
||||||
|
* along with information about failed and successful downloads.
|
||||||
|
* <p/>
|
||||||
|
* The PendingIntent takes users to an activity where they can look at all successful and failed downloads.
|
||||||
|
*
|
||||||
|
* @return A non-null PendingIntent for the notification.
|
||||||
|
*/
|
||||||
|
public PendingIntent getReportNotificationContentIntent();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
|||||||
|
package de.danoeh.antennapod.core;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callbacks for the flattr integration of the app.
|
||||||
|
*/
|
||||||
|
public interface FlattrCallbacks {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if true if the flattr integration should be activated,
|
||||||
|
* false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean flattrEnabled();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an intent that starts the activity that is responsible for
|
||||||
|
* letting users log into their flattr account.
|
||||||
|
*
|
||||||
|
* @return The intent that starts the authentication activity or null
|
||||||
|
* if flattr integration is disabled (i.e. flattrEnabled() == false).
|
||||||
|
*/
|
||||||
|
public Intent getFlattrAuthenticationActivityIntent();
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package de.danoeh.antennapod.core;
|
||||||
|
|
||||||
|
import android.app.PendingIntent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callbacks related to the gpodder.net integration of the core module
|
||||||
|
*/
|
||||||
|
public interface GpodnetCallbacks {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if true if the gpodder.net integration should be activated,
|
||||||
|
* false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean gpodnetEnabled();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a PendingIntent for the error notification of the GpodnetSyncService.
|
||||||
|
* <p/>
|
||||||
|
* What the PendingIntent does may be implementation-specific.
|
||||||
|
*
|
||||||
|
* @return A PendingIntent for the notification or null if gpodder.net integration
|
||||||
|
* has been disabled (i.e. gpodnetEnabled() == false).
|
||||||
|
*/
|
||||||
|
public PendingIntent getGpodnetSyncServiceErrorNotificationPendingIntent();
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package de.danoeh.antennapod.core;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import de.danoeh.antennapod.feed.MediaType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callbacks for the PlaybackService of the core module
|
||||||
|
*/
|
||||||
|
public interface PlaybackServiceCallbacks {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an intent which starts an audio- or videoplayer, depending on the
|
||||||
|
* type of media that is being played.
|
||||||
|
*
|
||||||
|
* @param mediaType The type of media that is being played.
|
||||||
|
* @return A non-null activity intent.
|
||||||
|
*/
|
||||||
|
public Intent getPlayerActivityIntent(MediaType mediaType);
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package de.danoeh.antennapod.core;
|
||||||
|
|
||||||
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callbacks for the classes in the storage package of the core module.
|
||||||
|
*/
|
||||||
|
public interface StorageCallbacks {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current version of the database.
|
||||||
|
*
|
||||||
|
* @return The non-negative version number of the database.
|
||||||
|
*/
|
||||||
|
public int getDatabaseVersion();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upgrades the given database from an old version to a newer version.
|
||||||
|
*
|
||||||
|
* @param db The database that is supposed to be upgraded.
|
||||||
|
* @param oldVersion The old version of the database.
|
||||||
|
* @param newVersion The version that the database is supposed to be upgraded to.
|
||||||
|
*/
|
||||||
|
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
import de.danoeh.antennapod.BuildConfig;
|
import de.danoeh.antennapod.BuildConfig;
|
||||||
import de.danoeh.antennapod.R;
|
import de.danoeh.antennapod.R;
|
||||||
import de.danoeh.antennapod.activity.OpmlImportFromPathActivity;
|
|
||||||
import de.danoeh.antennapod.receiver.FeedUpdateReceiver;
|
import de.danoeh.antennapod.receiver.FeedUpdateReceiver;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,6 +31,7 @@ import de.danoeh.antennapod.receiver.FeedUpdateReceiver;
|
|||||||
*/
|
*/
|
||||||
public class UserPreferences implements
|
public class UserPreferences implements
|
||||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
|
public static final String IMPORT_DIR = "import/";
|
||||||
private static final String TAG = "UserPreferences";
|
private static final String TAG = "UserPreferences";
|
||||||
|
|
||||||
public static final String PREF_PAUSE_ON_HEADSET_DISCONNECT = "prefPauseOnHeadsetDisconnect";
|
public static final String PREF_PAUSE_ON_HEADSET_DISCONNECT = "prefPauseOnHeadsetDisconnect";
|
||||||
@ -523,7 +523,7 @@ public class UserPreferences implements
|
|||||||
*/
|
*/
|
||||||
private static void createImportDirectory() {
|
private static void createImportDirectory() {
|
||||||
File importDir = getDataFolder(instance.context,
|
File importDir = getDataFolder(instance.context,
|
||||||
OpmlImportFromPathActivity.IMPORT_DIR);
|
IMPORT_DIR);
|
||||||
if (importDir != null) {
|
if (importDir != null) {
|
||||||
if (importDir.exists()) {
|
if (importDir.exists()) {
|
||||||
if (BuildConfig.DEBUG)
|
if (BuildConfig.DEBUG)
|
||||||
|
@ -166,7 +166,7 @@ public class GpodnetSyncService extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PendingIntent activityIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
|
PendingIntent activityIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
// TODO getGpodnetSyncServiceErrorNotificationPendingIntent
|
||||||
Notification notification = builder.setContentTitle(title)
|
Notification notification = builder.setContentTitle(title)
|
||||||
.setContentText(description)
|
.setContentText(description)
|
||||||
.setContentIntent(activityIntent)
|
.setContentIntent(activityIntent)
|
||||||
|
@ -331,7 +331,7 @@ public class DownloadService extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
private void setupNotificationBuilders() {
|
private void setupNotificationBuilders() { // TODO getNotificationContentIntent
|
||||||
Intent intent = new Intent(this, MainActivity.class);
|
Intent intent = new Intent(this, MainActivity.class);
|
||||||
intent.putExtra(MainActivity.EXTRA_NAV_TYPE, NavListAdapter.VIEW_TYPE_NAV);
|
intent.putExtra(MainActivity.EXTRA_NAV_TYPE, NavListAdapter.VIEW_TYPE_NAV);
|
||||||
intent.putExtra(MainActivity.EXTRA_NAV_INDEX, MainActivity.POS_DOWNLOADS);
|
intent.putExtra(MainActivity.EXTRA_NAV_INDEX, MainActivity.POS_DOWNLOADS);
|
||||||
@ -556,7 +556,7 @@ public class DownloadService extends Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (createReport) {
|
if (createReport) { // TODO getReportNotificationContentIntent
|
||||||
if (BuildConfig.DEBUG)
|
if (BuildConfig.DEBUG)
|
||||||
Log.d(TAG, "Creating report");
|
Log.d(TAG, "Creating report");
|
||||||
Intent intent = new Intent(this, MainActivity.class);
|
Intent intent = new Intent(this, MainActivity.class);
|
||||||
@ -633,6 +633,7 @@ public class DownloadService extends Service {
|
|||||||
final String resourceTitle = (downloadRequest.getTitle() != null)
|
final String resourceTitle = (downloadRequest.getTitle() != null)
|
||||||
? downloadRequest.getTitle() : downloadRequest.getSource();
|
? downloadRequest.getTitle() : downloadRequest.getSource();
|
||||||
|
|
||||||
|
// TODO getAuthentificationNotificationContentIntent
|
||||||
final Intent activityIntent = new Intent(getApplicationContext(), DownloadAuthenticationActivity.class);
|
final Intent activityIntent = new Intent(getApplicationContext(), DownloadAuthenticationActivity.class);
|
||||||
activityIntent.putExtra(DownloadAuthenticationActivity.ARG_DOWNLOAD_REQUEST, downloadRequest);
|
activityIntent.putExtra(DownloadAuthenticationActivity.ARG_DOWNLOAD_REQUEST, downloadRequest);
|
||||||
activityIntent.putExtra(DownloadAuthenticationActivity.ARG_SEND_TO_DOWNLOAD_REQUESTER_BOOL, true);
|
activityIntent.putExtra(DownloadAuthenticationActivity.ARG_SEND_TO_DOWNLOAD_REQUESTER_BOOL, true);
|
||||||
|
@ -172,7 +172,7 @@ public class PlaybackService extends Service {
|
|||||||
* running, the type of the last played media will be looked up.
|
* running, the type of the last played media will be looked up.
|
||||||
*/
|
*/
|
||||||
public static Intent getPlayerActivityIntent(Context context) {
|
public static Intent getPlayerActivityIntent(Context context) {
|
||||||
if (isRunning) {
|
if (isRunning) { // TODO getPlayerActivityIntent
|
||||||
if (currentMediaType == MediaType.VIDEO) {
|
if (currentMediaType == MediaType.VIDEO) {
|
||||||
return new Intent(context, VideoplayerActivity.class);
|
return new Intent(context, VideoplayerActivity.class);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1302,7 +1302,7 @@ public class PodDBAdapter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpgrade(final SQLiteDatabase db, final int oldVersion,
|
public void onUpgrade(final SQLiteDatabase db, final int oldVersion,
|
||||||
final int newVersion) {
|
final int newVersion) { // TODO onUpgrade
|
||||||
Log.w("DBAdapter", "Upgrading from version " + oldVersion + " to "
|
Log.w("DBAdapter", "Upgrading from version " + oldVersion + " to "
|
||||||
+ newVersion + ".");
|
+ newVersion + ".");
|
||||||
if (oldVersion <= 1) {
|
if (oldVersion <= 1) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user