Skip to content

Commit 2736a57

Browse files
Merge pull request #369 from owncloud/dev
Code cleanup and support for Android 2.2+
2 parents 5410c84 + 65d6c1d commit 2736a57

File tree

57 files changed

+281
-453
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+281
-453
lines changed

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/SubscriptionExpandableListAdapter.java

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,6 @@ public void onClick(View v) {
294294

295295
int rotation = 0;
296296

297-
//viewHolder.txt_UnreadCount.setText(group.unreadCount);
298-
299297

300298
if(group.idFolder != null)
301299
{
@@ -310,14 +308,14 @@ public void onClick(View v) {
310308
viewHolder.imgView.setVisibility(View.GONE);
311309
viewHolder.faviconView.setVisibility(View.VISIBLE);
312310
rotation = 0;
313-
viewHolder.faviconView.setImageDrawable(getBtn_rating_star_off_normal_holo_light(mContext));
311+
viewHolder.faviconView.setImageResource(getBtn_rating_star_off_normal_holo_light());
314312
} else if (getChildrenCount( groupPosition ) == 0 ) {
315313
viewHolder.imgView.setVisibility(View.GONE);
316314
viewHolder.faviconView.setVisibility(View.INVISIBLE);
317315
} else {
318316
viewHolder.imgView.setVisibility(View.VISIBLE);
319317
viewHolder.faviconView.setVisibility(View.INVISIBLE);
320-
viewHolder.imgView.setImageDrawable(getFolderIndicatorIcon(mContext));
318+
viewHolder.imgView.setImageResource(getFolderIndicatorIcon());
321319

322320
if(isExpanded) {
323321
rotation = 90;
@@ -335,9 +333,23 @@ public void onClick(View v) {
335333
}
336334
});
337335
}
336+
337+
//On API LEVEL < 11 we can't use the rotate method.. so we have to set different bitmaps.
338+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
339+
if(group.id_database != ALL_STARRED_ITEMS.getValue()) {
340+
if (rotation == 90) {
341+
viewHolder.imgView.setImageResource(getFolderIndicatorIcon());
342+
} else {
343+
viewHolder.imgView.setImageResource(getFolderIndicatorIconDown());
344+
}
345+
}
346+
}
338347
}
339348

340-
viewHolder.imgView.setRotation(rotation);
349+
350+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
351+
viewHolder.imgView.setRotation(rotation);
352+
}
341353

342354
return convertView;
343355
}
@@ -346,30 +358,40 @@ public void onClick(View v) {
346358

347359

348360

349-
Drawable folder_indicator_icon;
350-
Drawable btn_rating_star_off_normal_holo_light;
361+
private Integer folder_indicator_icon;
362+
private Integer folder_indicator_icon_old_android; //Only used on Android API LEVEL < 11
363+
private Integer btn_rating_star_off_normal_holo_light;
351364

352-
private Drawable getBtn_rating_star_off_normal_holo_light(Context context) {
365+
private int getBtn_rating_star_off_normal_holo_light() {
353366
if(btn_rating_star_off_normal_holo_light == null) {
354367
if(ThemeChooser.isDarkTheme(mContext)) {
355-
btn_rating_star_off_normal_holo_light = context.getResources().getDrawable(R.drawable.ic_action_star_border_dark);
368+
btn_rating_star_off_normal_holo_light = R.drawable.ic_action_star_border_dark;
356369
} else {
357-
btn_rating_star_off_normal_holo_light = context.getResources().getDrawable(R.drawable.ic_action_star_border_light);
370+
btn_rating_star_off_normal_holo_light = R.drawable.ic_action_star_border_light;
358371
}
359372
}
360373
return btn_rating_star_off_normal_holo_light;
361374
}
362375

363-
private Drawable getFolderIndicatorIcon(Context context) {
376+
private int getFolderIndicatorIcon() {
364377
if(folder_indicator_icon == null) {
365378
if(ThemeChooser.isDarkTheme(mContext))
366-
folder_indicator_icon = context.getResources().getDrawable(R.drawable.ic_action_expand_less_dark);
379+
folder_indicator_icon = R.drawable.ic_action_expand_less_dark;
367380
else
368-
folder_indicator_icon = context.getResources().getDrawable(R.drawable.ic_action_expand_less_light);
381+
folder_indicator_icon = R.drawable.ic_action_expand_less_light;
369382
}
370383
return folder_indicator_icon;
371384
}
372385

386+
private int getFolderIndicatorIconDown() {
387+
if(folder_indicator_icon_old_android == null) {
388+
if(ThemeChooser.isDarkTheme(mContext))
389+
folder_indicator_icon_old_android = R.drawable.ic_action_expand_more_dark;
390+
else
391+
folder_indicator_icon_old_android = R.drawable.ic_action_expand_more_light;
392+
}
393+
return folder_indicator_icon_old_android;
394+
}
373395

374396
static class GroupHolder
375397
{

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewFeedActivity.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22

33
import android.animation.Animator;
44
import android.animation.AnimatorListenerAdapter;
5-
import android.content.ContentResolver;
65
import android.content.Context;
76
import android.content.Intent;
8-
import android.net.Uri;
97
import android.os.AsyncTask;
10-
import android.os.Build;
118
import android.os.Bundle;
129
import android.support.v7.app.AppCompatActivity;
1310
import android.support.v7.widget.Toolbar;
@@ -76,7 +73,7 @@ protected void onCreate(Bundle savedInstanceState) {
7673
folderNames[i] = folders.get(i).getLabel();
7774
}
7875

79-
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, folderNames);
76+
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, folderNames);
8077
mFolderView.setAdapter(spinnerArrayAdapter);
8178

8279
mAddFeedButton.setOnClickListener(new OnClickListener() {

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import android.content.SharedPreferences;
3030
import android.graphics.Bitmap;
3131
import android.graphics.BitmapFactory;
32-
import android.graphics.Color;
3332
import android.net.Uri;
3433
import android.os.Bundle;
3534
import android.preference.PreferenceManager;
@@ -96,7 +95,6 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
9695
private MenuItem menuItem_Starred;
9796
private MenuItem menuItem_Read;
9897

99-
private IReader _Reader;
10098
private DatabaseConnectionOrm dbConn;
10199
public LazyList<RssItem> rssItems;
102100

@@ -121,7 +119,6 @@ protected void onCreate(Bundle savedInstanceState) {
121119

122120
pDelayHandler = new PostDelayHandler(this);
123121

124-
_Reader = new OwnCloud_Reader();
125122
dbConn = new DatabaseConnectionOrm(this);
126123
Intent intent = getIntent();
127124

@@ -397,7 +394,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
397394

398395
case R.id.action_openInBrowser:
399396
NewsDetailFragment newsDetailFragment = getNewsDetailFragmentAtPosition(currentPosition);
400-
String link = newsDetailFragment.mWebView.getUrl().toString();
397+
String link = newsDetailFragment.mWebView.getUrl();
401398

402399
if(link.equals("about:blank"))
403400
link = rssItem.getLink();
@@ -497,8 +494,9 @@ private boolean bindCustomTabsService() {
497494
String packageName = CustomTabActivityManager.getInstance().getPackageNameToUse(this);
498495
if (packageName == null)
499496
return false;
500-
boolean ok = CustomTabsClient.bindCustomTabsService(
501-
this, packageName, new CustomTabsServiceConnection() {
497+
498+
return CustomTabsClient.bindCustomTabsService(
499+
this, packageName, new CustomTabsServiceConnection() {
502500
@Override
503501
public void onCustomTabsServiceConnected(ComponentName name, CustomTabsClient client) {
504502
mCustomTabsClient = client;
@@ -509,8 +507,6 @@ public void onServiceDisconnected(ComponentName name) {
509507
mCustomTabsClient = null;
510508
}
511509
});
512-
//if (ok) {};
513-
return ok;
514510
}
515511

516512
private CustomTabsSession getSession() {

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailFragment.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
package de.luhmer.owncloudnewsreader;
2323

2424
import android.annotation.SuppressLint;
25+
import android.annotation.TargetApi;
2526
import android.content.Context;
26-
import android.graphics.Color;
2727
import android.os.AsyncTask;
2828
import android.os.Build;
2929
import android.os.Bundle;
@@ -51,6 +51,7 @@
5151
import butterknife.InjectView;
5252
import de.luhmer.owncloudnewsreader.database.model.Feed;
5353
import de.luhmer.owncloudnewsreader.database.model.RssItem;
54+
import de.luhmer.owncloudnewsreader.helper.AsyncTaskHelper;
5455
import de.luhmer.owncloudnewsreader.helper.ColorHelper;
5556
import de.luhmer.owncloudnewsreader.helper.ImageHandler;
5657
import de.luhmer.owncloudnewsreader.helper.ThemeChooser;
@@ -127,7 +128,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
127128
}
128129

129130
public void startLoadRssItemToWebViewTask() {
130-
new LoadRssItemToWebViewAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
131+
AsyncTaskHelper.StartAsyncTask(new LoadRssItemToWebViewAsyncTask());
131132
}
132133

133134
private class LoadRssItemToWebViewAsyncTask extends AsyncTask<Void, Void, String> {
@@ -171,7 +172,12 @@ protected void onPostExecute(String htmlPage) {
171172
}
172173
}
173174

175+
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
174176
public static void SetSoftwareRenderModeForWebView(String htmlPage, WebView webView) {
177+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
178+
return;
179+
}
180+
175181
if(htmlPage.contains(".gif")) {
176182
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
177183
Log.v("NewsDetailFragment", "Using LAYER_TYPE_SOFTWARE");

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import android.preference.PreferenceManager;
3434
import android.support.v4.app.Fragment;
3535
import android.support.v4.widget.SwipeRefreshLayout;
36-
import android.support.v7.app.ActionBar;
3736
import android.support.v7.app.AppCompatActivity;
3837
import android.support.v7.widget.DefaultItemAnimator;
3938
import android.support.v7.widget.LinearLayoutManager;
@@ -59,6 +58,7 @@
5958
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
6059
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm.SORT_DIRECTION;
6160
import de.luhmer.owncloudnewsreader.database.model.RssItem;
61+
import de.luhmer.owncloudnewsreader.helper.AsyncTaskHelper;
6262
import de.luhmer.owncloudnewsreader.services.PodcastDownloadService;
6363

6464
/**
@@ -237,7 +237,7 @@ public void notifyDataSetChangedOnAdapter()
237237
*/
238238
public void UpdateCurrentRssView(Context context, boolean refreshCurrentRssView) {
239239
Log.v(TAG, "UpdateCurrentRssView");
240-
new UpdateCurrentRssViewTask(context, refreshCurrentRssView).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
240+
AsyncTaskHelper.StartAsyncTask(new UpdateCurrentRssViewTask(context, refreshCurrentRssView));
241241
}
242242

243243
public RecyclerView getRecyclerView() {

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ public void ReloadAdapter() {
7272

7373
public void setRefreshing(boolean isRefreshing) {
7474
if(isRefreshing) {
75-
headerLogo.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher_background));
75+
headerLogo.setImageResource(R.drawable.ic_launcher_background);
7676
headerLogoProgress.setVisibility(View.VISIBLE);
7777
} else {
78-
headerLogo.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));
78+
headerLogo.setImageResource(R.drawable.ic_launcher);
7979
headerLogoProgress.setVisibility(View.INVISIBLE);
8080
}
8181
}

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragment.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22

33
import android.app.Activity;
44
import android.content.Context;
5-
import android.content.Intent;
6-
import android.content.SharedPreferences;
75
import android.net.Uri;
86
import android.os.Bundle;
9-
import android.preference.PreferenceManager;
107
import android.support.v4.app.Fragment;
118
import android.util.Log;
129
import android.view.ContextThemeWrapper;
@@ -28,28 +25,20 @@
2825
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
2926

3027
import java.io.File;
31-
import java.util.Arrays;
32-
import java.util.List;
3328

3429
import butterknife.ButterKnife;
3530
import butterknife.InjectView;
3631
import butterknife.OnClick;
3732
import de.greenrobot.event.EventBus;
3833
import de.luhmer.owncloudnewsreader.ListView.PodcastArrayAdapter;
3934
import de.luhmer.owncloudnewsreader.ListView.PodcastFeedArrayAdapter;
40-
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
41-
import de.luhmer.owncloudnewsreader.database.model.RssItem;
42-
import de.luhmer.owncloudnewsreader.events.podcast.AudioPodcastClicked;
43-
import de.luhmer.owncloudnewsreader.events.podcast.FeedPanelSlideEvent;
44-
import de.luhmer.owncloudnewsreader.events.podcast.PodcastFeedClicked;
4535
import de.luhmer.owncloudnewsreader.events.podcast.StartDownloadPodcast;
4636
import de.luhmer.owncloudnewsreader.events.podcast.TogglePlayerStateEvent;
4737
import de.luhmer.owncloudnewsreader.events.podcast.UpdatePodcastStatusEvent;
4838
import de.luhmer.owncloudnewsreader.events.podcast.WindPodcast;
4939
import de.luhmer.owncloudnewsreader.model.PodcastFeedItem;
5040
import de.luhmer.owncloudnewsreader.model.PodcastItem;
5141
import de.luhmer.owncloudnewsreader.services.PodcastDownloadService;
52-
import de.luhmer.owncloudnewsreader.services.PodcastPlaybackService;
5342
import de.luhmer.owncloudnewsreader.view.PodcastSlidingUpPanelLayout;
5443

5544

@@ -78,8 +67,7 @@ public class PodcastFragment extends Fragment {
7867
* @return A new instance of fragment PodcastFragment.
7968
*/
8069
public static PodcastFragment newInstance() {
81-
PodcastFragment fragment = new PodcastFragment();
82-
return fragment;
70+
return new PodcastFragment();
8371
}
8472
public PodcastFragment() {
8573
// Required empty public constructor

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import android.support.v7.app.AppCompatActivity;
1717
import android.util.Log;
1818
import android.util.TypedValue;
19-
import android.view.Gravity;
2019
import android.view.SurfaceView;
2120
import android.view.View;
2221
import android.view.ViewTreeObserver;
@@ -33,14 +32,11 @@
3332
import butterknife.ButterKnife;
3433
import butterknife.InjectView;
3534
import de.greenrobot.event.EventBus;
36-
import de.luhmer.owncloudnewsreader.ListView.SubscriptionExpandableListAdapter;
3735
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
3836
import de.luhmer.owncloudnewsreader.database.model.RssItem;
3937
import de.luhmer.owncloudnewsreader.events.podcast.RegisterVideoOutput;
4038
import de.luhmer.owncloudnewsreader.events.podcast.UpdatePodcastStatusEvent;
4139
import de.luhmer.owncloudnewsreader.events.podcast.VideoDoubleClicked;
42-
import de.luhmer.owncloudnewsreader.helper.FileUtils;
43-
import de.luhmer.owncloudnewsreader.helper.ImageHandler;
4440
import de.luhmer.owncloudnewsreader.helper.SizeAnimator;
4541
import de.luhmer.owncloudnewsreader.interfaces.IPlayPausePodcastClicked;
4642
import de.luhmer.owncloudnewsreader.model.PodcastItem;
@@ -480,7 +476,10 @@ public void onAnimationRepeat(Animation animation) {
480476

481477
//int animationpos = 500;
482478
float xPosition = rlVideoPodcastSurfaceWrapper.getVideoXPosition();
483-
view.animate().x(xPosition).y(absoluteYPosition).setDuration(animationTime);
479+
480+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {//TODO podcast video is only working for newer android versions
481+
view.animate().x(xPosition).y(absoluteYPosition).setDuration(animationTime);
482+
}
484483
//scaleX(scaleFactor).scaleY(scaleFactor)
485484
}
486485

0 commit comments

Comments
 (0)