Update 0.4.1

This commit is contained in:
David 2013-07-31 20:02:22 +02:00
parent 776d1fcd8d
commit 0a2db6be10
9 changed files with 167 additions and 29 deletions

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.luhmer.owncloudnewsreader" package="de.luhmer.owncloudnewsreader"
android:versionCode="23" android:versionCode="24"
android:versionName="0.4.0" > android:versionName="0.4.1" >
<uses-sdk <uses-sdk
android:minSdkVersion="7" android:minSdkVersion="7"

View file

@ -2,14 +2,69 @@
<head> <head>
<style type="text/css"> <style type="text/css">
@font-face { @font-face {
font-family: "Roboto"; font-family: "ROBOTO_BLACK";
src: url('file:///android_asset/fonts/Roboto-Black.ttf');
}
@font-face {
font-family: "ROBOTO_BOLD";
src: url('file:///android_asset/fonts/Roboto-Bold.ttf');
}
@font-face {
font-family: "ROBOTO_CONDENSED_BOLD";
src: url('file:///android_asset/fonts/Roboto-BoldCondensed.ttf');
}
@font-face {
font-family: "ROBOTO_CONDENSED";
src: url('file:///android_asset/fonts/Roboto-Condensed.ttf');
}
@font-face {
font-family: "ROBOTO_LIGHT";
src: url('file:///android_asset/fonts/Roboto-Light.ttf'); src: url('file:///android_asset/fonts/Roboto-Light.ttf');
} }
@font-face {
font-family: "ROBOTO_MEDIUM";
src: url('file:///android_asset/fonts/Roboto-Medium.ttf');
}
@font-face {
font-family: "ROBOTO_REGULAR";
src: url('file:///android_asset/fonts/Roboto-Regular.ttf');
}
@font-face {
font-family: "ROBOTO_THIN";
src: url('file:///android_asset/fonts/Roboto-Thin.ttf');
}
@font-face {
font-family: "ROBOTOSLAB_BOLD";
src: url('file:///android_asset/fonts/RobotoSlab-Bold.ttf');
}
@font-face {
font-family: "ROBOTOSLAB_LIGHT";
src: url('file:///android_asset/fonts/RobotoSlab-Light.ttf');
}
@font-face {
font-family: "ROBOTOSLAB_REGULAR";
src: url('file:///android_asset/fonts/RobotoSlab-Regular.ttf');
}
@font-face {
font-family: "ROBOTOSLAB_THIN";
src: url('file:///android_asset/fonts/RobotoSlab-Thin.ttf');
}
body#darkTheme { body#darkTheme {
/* font-family: 'Segoe UI', 'Segoe UI Light', 'Droid Sans', sans-serif ; */ /* font-family: 'Segoe UI', 'Segoe UI Light', 'Droid Sans', sans-serif ; */
font-family: 'Roboto', 'Segoe UI', 'Segoe UI Light'; font-family: 'ROBOTO_FONT_STYLE', 'Segoe UI', 'Segoe UI Light';
font-size: 18px; font-size: 18px;
font-weight: normal; font-weight: normal;
background-color: #222; background-color: #222;
@ -19,7 +74,7 @@
} }
body#lightTheme { body#lightTheme {
font-family: 'Roboto', 'Segoe UI', 'Segoe UI Light'; font-family: 'ROBOTO_FONT_STYLE', 'Segoe UI', 'Segoe UI Light';
font-size: 18px; font-size: 18px;
font-weight: normal; font-weight: normal;
background-color: #E1E1E1; background-color: #E1E1E1;

View file

@ -39,9 +39,10 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
private ArrayList<FolderSubscribtionItem> mCategoriesArrayList; private ArrayList<FolderSubscribtionItem> mCategoriesArrayList;
private SparseArray<SparseArray<ConcreteFeedItem>> mItemsArrayList; private SparseArray<SparseArray<ConcreteFeedItem>> mItemsArrayList;
private boolean showOnlyUnread = false; private boolean showOnlyUnread = false;
public static final String ALL_UNREAD_ITEMS = "-10"; public static final String ALL_UNREAD_ITEMS = "-10";
public static final String ALL_STARRED_ITEMS = "-11"; public static final String ALL_STARRED_ITEMS = "-11";
public static final String ALL_ITEMS = "-12";
public static final String ITEMS_WITHOUT_FOLDER = "-22"; public static final String ITEMS_WITHOUT_FOLDER = "-22";

View file

@ -9,10 +9,13 @@ import java.util.List;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -25,6 +28,7 @@ import android.widget.ProgressBar;
import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.app.SherlockFragment;
import de.luhmer.owncloudnewsreader.database.DatabaseConnection; import de.luhmer.owncloudnewsreader.database.DatabaseConnection;
import de.luhmer.owncloudnewsreader.helper.FontHelper;
import de.luhmer.owncloudnewsreader.helper.ImageHandler; import de.luhmer.owncloudnewsreader.helper.ImageHandler;
import de.luhmer.owncloudnewsreader.helper.ThemeChooser; import de.luhmer.owncloudnewsreader.helper.ThemeChooser;
@ -389,6 +393,11 @@ public class NewsDetailFragment extends SherlockFragment {
if(ThemeChooser.isDarkTheme(context)) if(ThemeChooser.isDarkTheme(context))
web_template = web_template.replace("<body id=\"lightTheme\">", "<body id=\"darkTheme\">"); web_template = web_template.replace("<body id=\"lightTheme\">", "<body id=\"darkTheme\">");
FontHelper fHelper = new FontHelper(context);
web_template = web_template.replace("ROBOTO_FONT_STYLE", fHelper.getFontName());
/* /*
DisplayMetrics displaymetrics = new DisplayMetrics(); DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

View file

@ -182,21 +182,9 @@ public class NewsReaderListFragment extends SherlockFragment implements OnCreate
public void onAsyncTaskCompleted(int task_id, Object task_result) { public void onAsyncTaskCompleted(int task_id, Object task_result) {
if(isTwoPaneMode() || isAdded()) { if(isTwoPaneMode() || isAdded()) {
if(!(task_result instanceof Exception)) if(!(task_result instanceof Exception))
{ {
API api = null; String appVersion = task_result.toString();
String appVersion = task_result.toString(); API api = API.GetRightApiForVersion(appVersion, getActivity());
int versionCode = 0;
if(appVersion != null)
{
appVersion = appVersion.replace(".", "");
versionCode = Integer.parseInt(appVersion);
}
if (versionCode >= 1101) {
api = new APIv2(getActivity());
} else {
api = new APIv1(getActivity());
}
((OwnCloud_Reader) _Reader).setApi(api); ((OwnCloud_Reader) _Reader).setApi(api);
_Reader.Start_AsyncTask_PerformItemStateChange(Constants.TaskID_PerformStateChange, getActivity(), onAsyncTask_PerformTagExecute); _Reader.Start_AsyncTask_PerformItemStateChange(Constants.TaskID_PerformStateChange, getActivity(), onAsyncTask_PerformTagExecute);

View file

@ -594,7 +594,7 @@ public class DatabaseConnection {
String buildSQL = getAllFeedsSelectStatement() + String buildSQL = getAllFeedsSelectStatement() +
" FROM " + RSS_ITEM_TABLE; " FROM " + RSS_ITEM_TABLE;
if(!(ID_FOLDER.equals(SubscriptionExpandableListAdapter.ALL_UNREAD_ITEMS) || ID_FOLDER.equals(SubscriptionExpandableListAdapter.ALL_STARRED_ITEMS)))//Wenn nicht Alle Artikel ausgewaehlt wurde (-10) oder (-11) fuer Starred Feeds if(!(ID_FOLDER.equals(SubscriptionExpandableListAdapter.ALL_UNREAD_ITEMS) || ID_FOLDER.equals(SubscriptionExpandableListAdapter.ALL_STARRED_ITEMS) || ID_FOLDER.equals(SubscriptionExpandableListAdapter.ALL_ITEMS)))//Wenn nicht Alle Artikel ausgewaehlt wurde (-10) oder (-11) fuer Starred Feeds
{ {
buildSQL += " WHERE subscription_id_subscription IN " + buildSQL += " WHERE subscription_id_subscription IN " +
"(SELECT sc.rowid " + "(SELECT sc.rowid " +

View file

@ -81,4 +81,50 @@ public class FontHelper {
put(RobotoTypefaceManager.ROBOTOSLAB_BOLD, RobotoTypefaceManager.ROBOTOSLAB_BOLD); put(RobotoTypefaceManager.ROBOTOSLAB_BOLD, RobotoTypefaceManager.ROBOTOSLAB_BOLD);
} }
}; };
public String getFontName() {
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
int typefaceValue = Integer.parseInt(mPrefs.getString(SettingsActivity.SP_FONT, "2"));
String typeFaceName = "";
switch (typefaceValue) {
case RobotoTypefaceManager.ROBOTO_THIN:
typeFaceName = "ROBOTO_THIN";
break;
case RobotoTypefaceManager.ROBOTO_LIGHT:
typeFaceName = "ROBOTO_LIGHT";
break;
case RobotoTypefaceManager.ROBOTO_REGULAR:
typeFaceName = "ROBOTO_REGULAR";
break;
case RobotoTypefaceManager.ROBOTO_MEDIUM:
typeFaceName = "ROBOTO_MEDIUM";
break;
case RobotoTypefaceManager.ROBOTO_BOLD:
typeFaceName = "ROBOTO_BOLD";
break;
case RobotoTypefaceManager.ROBOTO_BLACK:
typeFaceName = "ROBOTO_BLACK";
break;
case RobotoTypefaceManager.ROBOTO_CONDENSED:
typeFaceName = "ROBOTO_CONDENSED";
break;
case RobotoTypefaceManager.ROBOTO_CONDENSED_BOLD:
typeFaceName = "ROBOTO_CONDENSED_BOLD";
break;
case RobotoTypefaceManager.ROBOTOSLAB_THIN:
typeFaceName = "ROBOTOSLAB_THIN";
break;
case RobotoTypefaceManager.ROBOTOSLAB_LIGHT:
typeFaceName = "ROBOTOSLAB_LIGHT";
break;
case RobotoTypefaceManager.ROBOTOSLAB_REGULAR:
typeFaceName = "ROBOTOSLAB_REGULAR";
break;
case RobotoTypefaceManager.ROBOTOSLAB_BOLD:
typeFaceName = "ROBOTOSLAB_BOLD";
break;
}
return typeFaceName;
}
} }

View file

@ -4,6 +4,7 @@ import android.annotation.TargetApi;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Build; import android.os.Build;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
@ -24,6 +25,7 @@ import de.luhmer.owncloudnewsreader.ListView.SubscriptionExpandableListAdapter;
import de.luhmer.owncloudnewsreader.database.DatabaseConnection; import de.luhmer.owncloudnewsreader.database.DatabaseConnection;
import de.luhmer.owncloudnewsreader.reader.IReader; import de.luhmer.owncloudnewsreader.reader.IReader;
import de.luhmer.owncloudnewsreader.reader.OnAsyncTaskCompletedListener; import de.luhmer.owncloudnewsreader.reader.OnAsyncTaskCompletedListener;
import de.luhmer.owncloudnewsreader.reader.owncloud.API;
import de.luhmer.owncloudnewsreader.reader.owncloud.OwnCloud_Reader; import de.luhmer.owncloudnewsreader.reader.owncloud.OwnCloud_Reader;
public class MenuUtilsSherlockFragmentActivity extends SherlockFragmentActivity { public class MenuUtilsSherlockFragmentActivity extends SherlockFragmentActivity {
@ -41,6 +43,8 @@ public class MenuUtilsSherlockFragmentActivity extends SherlockFragmentActivity
private static MenuItem menuItemMarkAllAsRead; private static MenuItem menuItemMarkAllAsRead;
private static MenuItem menuItemDownloadMoreItems; private static MenuItem menuItemDownloadMoreItems;
static IReader _Reader;
/** /**
* @return the menuItemUpdater * @return the menuItemUpdater
*/ */
@ -156,12 +160,10 @@ public class MenuUtilsSherlockFragmentActivity extends SherlockFragmentActivity
} }
private static void DownloadMoreItems() private static void DownloadMoreItems()
{ {
NewsReaderDetailFragment ndf = ((NewsReaderDetailFragment) activity.getSupportFragmentManager().findFragmentById(R.id.newsreader_detail_container));
DatabaseConnection dbConn = new DatabaseConnection(activity); DatabaseConnection dbConn = new DatabaseConnection(activity);
int count = dbConn.getCountFeedsForFolder(SubscriptionExpandableListAdapter.ALL_UNREAD_ITEMS, true); int count = dbConn.getCountFeedsForFolder(SubscriptionExpandableListAdapter.ALL_ITEMS, false);
if(count > Constants.maxItemsCount) if(count >= Constants.maxItemsCount)
{ {
String text = activity.getString(R.string.max_items_count_reached); String text = activity.getString(R.string.max_items_count_reached);
text = text.replace("XX", "" + Constants.maxItemsCount); text = text.replace("XX", "" + Constants.maxItemsCount);
@ -179,13 +181,31 @@ public class MenuUtilsSherlockFragmentActivity extends SherlockFragmentActivity
} }
else else
{ {
IReader _Reader = new OwnCloud_Reader(); String username = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext()).getString("edt_username", "");
_Reader.Start_AsyncTask_GetOldItems(0, activity, onAsyncTaskComplete, ndf.getIdFeed(), ndf.getIdFolder()); String password = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext()).getString("edt_password", "");
_Reader = new OwnCloud_Reader();
((OwnCloud_Reader)_Reader).Start_AsyncTask_GetVersion(Constants.TaskID_GetVersion, activity, onAsyncTaskGetVersionFinished, username, password);
Toast.makeText(activity, activity.getString(R.string.toast_GettingMoreItems), Toast.LENGTH_SHORT).show(); Toast.makeText(activity, activity.getString(R.string.toast_GettingMoreItems), Toast.LENGTH_SHORT).show();
} }
} }
static OnAsyncTaskCompletedListener onAsyncTaskGetVersionFinished = new OnAsyncTaskCompletedListener() {
@Override
public void onAsyncTaskCompleted(int task_id, Object task_result) {
if(_Reader != null) {
String appVersion = task_result.toString();
API api = API.GetRightApiForVersion(appVersion, activity);
((OwnCloud_Reader) _Reader).setApi(api);
NewsReaderDetailFragment ndf = ((NewsReaderDetailFragment) activity.getSupportFragmentManager().findFragmentById(R.id.newsreader_detail_container));
_Reader.Start_AsyncTask_GetOldItems(Constants.TaskID_GetItems, activity, onAsyncTaskComplete, ndf.getIdFeed(), ndf.getIdFolder());
}
}
};
static OnAsyncTaskCompletedListener onAsyncTaskComplete = new OnAsyncTaskCompletedListener() { static OnAsyncTaskCompletedListener onAsyncTaskComplete = new OnAsyncTaskCompletedListener() {
@Override @Override
public void onAsyncTaskCompleted(int task_id, Object task_result) { public void onAsyncTaskCompleted(int task_id, Object task_result) {

View file

@ -3,12 +3,15 @@ package de.luhmer.owncloudnewsreader.reader.owncloud;
import java.util.List; import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import de.luhmer.owncloudnewsreader.SettingsActivity; import de.luhmer.owncloudnewsreader.SettingsActivity;
import de.luhmer.owncloudnewsreader.reader.FeedItemTags; import de.luhmer.owncloudnewsreader.reader.FeedItemTags;
import de.luhmer.owncloudnewsreader.reader.FeedItemTags.TAGS; import de.luhmer.owncloudnewsreader.reader.FeedItemTags.TAGS;
import de.luhmer.owncloudnewsreader.reader.owncloud.apiv1.APIv1;
import de.luhmer.owncloudnewsreader.reader.owncloud.apiv2.APIv2;
public abstract class API { public abstract class API {
protected SharedPreferences mPrefs; protected SharedPreferences mPrefs;
@ -18,6 +21,22 @@ public abstract class API {
mPrefs = PreferenceManager.getDefaultSharedPreferences(cont); mPrefs = PreferenceManager.getDefaultSharedPreferences(cont);
} }
public static API GetRightApiForVersion(String appVersion, Activity activity) {
API api = null;
int versionCode = 0;
if(appVersion != null)
{
appVersion = appVersion.replace(".", "");
versionCode = Integer.parseInt(appVersion);
}
if (versionCode >= 1101) {
api = new APIv2(activity);
} else {
api = new APIv1(activity);
}
return api;
}
protected abstract String getItemUrl(); protected abstract String getItemUrl();
protected abstract String getItemUpdatedUrl(); protected abstract String getItemUpdatedUrl();
protected abstract String getFeedUrl(); protected abstract String getFeedUrl();