Skip to content

Commit

Permalink
Moved to recyclerview now that lollipop is released
Browse files Browse the repository at this point in the history
Signed-off-by: Jonas Kalderstam <jonas@kalderstam.se>
  • Loading branch information
spacecowboy committed Oct 21, 2014
1 parent 101ad0d commit 0345f63
Show file tree
Hide file tree
Showing 26 changed files with 917 additions and 395 deletions.
23 changes: 12 additions & 11 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ android {
applicationId "com.nononsenseapps.feeder"
versionCode 1
versionName "1.0"
compileSdkVersion 19
compileSdkVersion 21
minSdkVersion 19
targetSdkVersion 19
targetSdkVersion 21

// Reduce bloat by removing stuff we don't need
// Only support english right now
Expand All @@ -19,11 +19,10 @@ android {
}

productFlavors {
kitkat {
fdroid {
}
play {
}
//lpreview {
// compileSdkVersion 'android-L'
//}
}

buildTypes {
Expand All @@ -42,19 +41,21 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':deps:Simplistic-RSS')

//lpreviewCompile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.squareup.picasso:picasso:2.3.3'
compile 'joda-time:joda-time:2.3'
compile 'org.jsoup:jsoup:1.7.3'
compile 'com.squareup.retrofit:retrofit:1.6.1'
compile 'com.android.support:support-v4:20.0.0'
compile 'com.google.android.gms:play-services:5.2.08'
compile 'com.android.support:support-v4:21.0.0'

// For nice looking progress bars
compile 'com.github.castorflex.smoothprogressbar:library:1.0.0'
compile 'com.github.castorflex.smoothprogressbar:library-circular:1.0.1'

playCompile 'com.google.android.gms:play-services:6.1.11'
// Don't work on L-preview yet
kitkatCompile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
kitkatCompile 'com.squareup.okhttp:okhttp:2.0.0'
fdroidCompile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
fdroidCompile 'com.squareup.okhttp:okhttp:2.0.0'
playCompile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
playCompile 'com.squareup.okhttp:okhttp:2.0.0'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.nononsenseapps.feeder.model;

import android.accounts.Account;
import android.content.Context;
import android.preference.PreferenceManager;

public class AuthHelper {

public static final String KEY_ACCOUNT = "key_account";
public static final String SCOPE =
"oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile";
static final String TAG = "SyncHelper";

public static String getAuthToken(final Context context) {
final String accountName = getSavedAccountName(context);
if (accountName == null || accountName.isEmpty()) {
return null;
}

return getAuthToken(context, accountName);
}

public static String getSavedAccountName(final Context context) {
return PreferenceManager.getDefaultSharedPreferences(context)
.getString(AuthHelper.KEY_ACCOUNT, null);
}

/**
* Only use this in a background thread
*/
public static String getAuthToken(final Context context,
final String accountName) {
// Not available without play services
return null;
}

public static Account getSavedAccount(final Context context) {
return getAccount(context, getSavedAccountName(context));
}

public static Account getAccount(final Context context,
final String accountName) {
// Not available without play services
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.nononsenseapps.feeder.ui;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;

import com.nononsenseapps.feeder.R;


public class AccountDialog extends DialogFragment {

@Override
public Dialog onCreateDialog(Bundle args) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.select_account);

builder.setMessage("Non google-login not implemented yet :(");
return builder.create();
}
}
11 changes: 0 additions & 11 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,11 @@
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />

<permission
android:name="com.example.gcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

<activity
android:name="com.nononsenseapps.feeder.ui.FeedActivity"
Expand Down
77 changes: 35 additions & 42 deletions app/src/main/java/com/nononsenseapps/feeder/ui/BaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,24 @@
import android.animation.TypeEvaluator;
import android.app.Activity;
import android.app.LoaderManager;
import android.content.ContentValues;
import android.content.Intent;
import android.content.Loader;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.AbsListView;
import android.widget.ExpandableListView;

import com.nononsenseapps.feeder.R;
import com.nononsenseapps.feeder.db.FeedSQL;
import com.nononsenseapps.feeder.model.TaggedFeedsAdapter;
import com.nononsenseapps.feeder.util.LPreviewUtils;
import com.nononsenseapps.feeder.util.LPreviewUtilsBase;
Expand Down Expand Up @@ -156,16 +156,16 @@ public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();

if (mDrawerToggle != null &&
mDrawerToggle.onOptionsItemSelected(item)) {
mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}

if (id == android.R.id.home && mShouldFinishBack) {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.L) {
// finishAfterTransition();
// } else {
finish();
//}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
finishAfterTransition();
} else {
finish();
}
return true;
}
return super.onOptionsItemSelected(item);
Expand Down Expand Up @@ -219,7 +219,7 @@ public void onDrawerStateChanged(int newState) {

@Override
public void onDrawerSlide(View drawerView,
float slideOffset) {
float slideOffset) {
updateStatusBarForNavDrawerSlide(slideOffset);
onNavDrawerSlide(slideOffset);
}
Expand All @@ -232,13 +232,6 @@ public void onDrawerSlide(View drawerView,

mDrawerToggle.syncState();

//mNavAdapter = new FeedsAdapter();
// mNavAdapter = new SimpleCursorAdapter(this,
// R.layout.view_feed, null,
// new String[]{FeedSQL.COL_TITLE, FeedSQL.COL_UNREADCOUNT},
// new int[]{R.id.feed_name,
// R.id.feed_unreadcount},
// 0);
mNavAdapter = new TaggedFeedsAdapter(this);
mDrawerListView = (ExpandableListView) mDrawerLayout
.findViewById(R.id.navdrawer_list);
Expand All @@ -248,8 +241,8 @@ public void onDrawerSlide(View drawerView,
new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(final ExpandableListView parent,
final View v, final int groupPosition,
final int childPosition, final long id) {
final View v, final int groupPosition,
final int childPosition, final long id) {
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(Gravity.START);
}
Expand All @@ -269,7 +262,7 @@ public boolean onChildClick(final ExpandableListView parent,
mDrawerListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(final ExpandableListView parent,
final View v, final int groupPosition, final long id) {
final View v, final int groupPosition, final long id) {
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(Gravity.START);
}
Expand All @@ -289,7 +282,7 @@ public boolean onGroupClick(final ExpandableListView parent,
mNavAdapter.setOnExpandClickListener(new TaggedFeedsAdapter.OnExpandClickListener() {
@Override
public void onExpandClick(final int groupPosition,
final boolean isExpanded) {
final boolean isExpanded) {
if (isExpanded) {
mDrawerListView.collapseGroup(groupPosition);
} else {
Expand Down Expand Up @@ -344,23 +337,23 @@ private void updateStatusBarForNavDrawerSlide(float slideOffset) {

// Subclasses can override this for custom behavior
protected void onNavDrawerStateChanged(boolean isOpen,
boolean isAnimating) {
boolean isAnimating) {
if (mActionBarAutoHideEnabled && isOpen) {
autoShowOrHideActionBar(true);
}
}

protected boolean isNavDrawerOpen() {
return mDrawerLayout != null &&
mDrawerLayout.isDrawerOpen(Gravity.START);
mDrawerLayout.isDrawerOpen(Gravity.START);
}

protected void onNavDrawerSlide(float offset) {
}

// Subclasses can override to decide what happens on nav item selection
protected void onNavigationDrawerItemSelected(long id, String title,
String url, String tag) {
String url, String tag) {
// TODO add default start activity with arguments
}

Expand Down Expand Up @@ -417,31 +410,31 @@ protected void onActionBarAutoShowOrHide(boolean shown) {
}
}

protected void enableActionBarAutoHide(final AbsListView listView) {
protected void enableActionBarAutoHide(final RecyclerView listView) {
initActionBarAutoHide();
// final LinearLayoutManager layoutManager =
// (LinearLayoutManager) listView.getLayoutManager();
final LinearLayoutManager layoutManager =
(LinearLayoutManager) listView.getLayoutManager();
mActionBarAutoHideSignal = 0;
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
listView.setOnScrollListener(new RecyclerView.OnScrollListener() {
final static int ITEMS_THRESHOLD = 1;
int lastFvi = 0;

@Override
public void onScrollStateChanged(AbsListView view,
int scrollState) {
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
//int firstVisibleItem =
// layoutManager.findFirstVisibleItemPosition();
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int firstVisibleItem =
layoutManager.findFirstVisibleItemPosition();
onMainContentScrolled(firstVisibleItem <= ITEMS_THRESHOLD ?
0 :
Integer.MAX_VALUE,
0 :
Integer.MAX_VALUE,
lastFvi - firstVisibleItem > 0 ?
Integer.MIN_VALUE :
lastFvi == firstVisibleItem ? 0 : Integer.MAX_VALUE);
Integer.MIN_VALUE :
lastFvi == firstVisibleItem ? 0 : Integer.MAX_VALUE);
lastFvi = firstVisibleItem;
}
});
Expand Down Expand Up @@ -487,8 +480,8 @@ private void onMainContentScrolled(int currentY, int deltaY) {
}

boolean shouldShow = currentY < mActionBarAutoHideMinY ||
(mActionBarAutoHideSignal <=
-mActionBarAutoHideSensivity);
(mActionBarAutoHideSignal <=
-mActionBarAutoHideSensivity);
autoShowOrHideActionBar(shouldShow);
}

Expand All @@ -500,7 +493,7 @@ protected void enableActionBarAutoHide(
new ObservableScrollView.OnScrollChangedListener() {
@Override
public void onScrollChanged(final int deltaX,
final int deltaY) {
final int deltaY) {
onMainContentScrolled(scrollView.getScrollY(), deltaY);
}
});
Expand Down Expand Up @@ -542,7 +535,7 @@ public Loader<Cursor> onCreateLoader(final int id, final Bundle bundle) {

@Override
public void onLoadFinished(final Loader<Cursor> cursorLoader,
final Cursor cursor) {
final Cursor cursor) {
if (cursorLoader.getId() == NAV_TAGS_LOADER) {
mNavAdapter.setGroupCursor(cursor);
// Load child cursors
Expand Down
Loading

0 comments on commit 0345f63

Please sign in to comment.